用js成功地完成了转换,但是为什么我的另一种方法不起作用?

  • 我的演示jsfiddle
  • 当我再次单击
  • ,但注释代码无效,并且下面的代码正常工作时,我想要的是反向转换”>
let dbclickre = true;
function flipped() {
    if (dbclickre) {
        document.querySelector(".linkrec").setAttribute("Id", "flipped");
    } else {
        document.querySelector(".linkrec").removeAttribute("Id", "flipped")
    }
    dbclickre = !dbclickre;
}
  • 下面是注释的代码(我认为当我第一次单击最后一个
  • 时,js将执行if语句(的确可以正常工作),但是当我再次单击时,else语句并没有执行(但是我设置了#flipped .reverse {background:whitesmoke})。为什么会这样?)
// const dbclickre = document.querySelector(".reverse");
// function flipped() {
//     if (dbclickre.style.backgroundColor = 'white') {
//         document.querySelector(".linkrec").setAttribute("Id", "flipped");
//     } else {
//         document.querySelector(".linkrec").removeAttribute("Id", "flipped")
//     }
// }

我的演示jsfiddle我再次单击

  • 时我想要的是一个反向转换,但是注释的代码无效,并且下面的代码可以正常工作,让dbclickre = true;函数flipped(){...
  • 回答如下:

    您可以检查Id属性的存在,而不是依靠背景色来检查翻转的状态。这里是更改后的代码:

    用js成功地完成了转换,但是为什么我的另一种方法不起作用?

    • 我的演示jsfiddle
    • 当我再次单击
    • ,但注释代码无效,并且下面的代码正常工作时,我想要的是反向转换”>
    let dbclickre = true;
    function flipped() {
        if (dbclickre) {
            document.querySelector(".linkrec").setAttribute("Id", "flipped");
        } else {
            document.querySelector(".linkrec").removeAttribute("Id", "flipped")
        }
        dbclickre = !dbclickre;
    }
    
    • 下面是注释的代码(我认为当我第一次单击最后一个
    • 时,js将执行if语句(的确可以正常工作),但是当我再次单击时,else语句并没有执行(但是我设置了#flipped .reverse {background:whitesmoke})。为什么会这样?)
    // const dbclickre = document.querySelector(".reverse");
    // function flipped() {
    //     if (dbclickre.style.backgroundColor = 'white') {
    //         document.querySelector(".linkrec").setAttribute("Id", "flipped");
    //     } else {
    //         document.querySelector(".linkrec").removeAttribute("Id", "flipped")
    //     }
    // }
    

    我的演示jsfiddle我再次单击

  • 时我想要的是一个反向转换,但是注释的代码无效,并且下面的代码可以正常工作,让dbclickre = true;函数flipped(){...
  • 回答如下:

    您可以检查Id属性的存在,而不是依靠背景色来检查翻转的状态。这里是更改后的代码: