使用DOM时javascript中的条件问题

时间:2018-10-29 13:42:51

标签: javascript html css dom conditional-statements

此条件不起作用。当我单击时,它应该隐藏所有li元素,当我再次单击时,它应该显示所有已隐藏但不起作用的li元素

hide.addEventListener("click", function() {

        Array.from(list.children).forEach(function(k){

            if(k.style.display === "block") {
                k.style.display = "none";
                hide.textContent = "Show";
                list.style.backgroundColor = "rgba(0, 0, 0, 33%)";
                list.style.borderRadius = "8px";
                document.querySelector(".hidden").style.display = "block";
                input.setAttribute("disabled", "disabled");
            } 

            else if (k.style.display === "none") {
                hide.textContent = "Hide";
                k.style.display = "block";
                list.style.backgroundColor == "transparent";
                list.style.borderRadius = "";
                document.querySelector(".hidden").style.display = "none";
                input.removeAttribute("disabled");
            } 

            else {

            };

        })
    });

1 个答案:

答案 0 :(得分:0)

    Array.from(list.children).forEach(function(k){

    if(k.style.display == "block") {
        k.style.display = "none";
        hide.textContent = "Show";
        list.style.backgroundColor = "rgba(0, 0, 0, 33%)";
        list.style.borderRadius = "8px";
        document.querySelector(".hidden").style.display = "block";
        input.setAttribute("disabled", "disabled");
    } 

    else if (k.style.display == "none") {
        hide.textContent = "Hide";
        k.style.display = "block";
        list.style.backgroundColor == "transparent";
        list.style.borderRadius = "";
        document.querySelector(".hidden").style.display = "none";
        input.removeAttribute("disabled");
    } 

    else {

    };

});

当您尝试比较两个值时,请记住使用=====而不是=。使用=表示您的 DECLARING 值,而使用=====则表示您的< strong> 比较 的两个值。仅当您想要精确时才使用===,例如1 == '1'为true,而1 === '1'为false,因为一个是整数而一个是字符串,因此它们并不精确一样。

关于JQuery的另一个好处是,您可以使用其许多内置函数来 toggle 某些事情,在这种情况下,您可以使用.toggleClass()并具有相同的效果:

Array.from(list.children).forEach(function(k){

k.toggleClass('hidden');

});

然后在您的CSS中,您可以:

.hidden {
display = 'block';
}