簡體   English   中英

if else 中的所有內容都在不應該執行的情況下執行

[英]Everything within if else being executed when it shouldn't

我有以下 if else 語句:

let userIconText = document.getElementsByClassName("iconText");
let userIconDiv = document.getElementById("userIcons");
let rCorners2 = document.getElementById("rcorners2");
let homeContainerDiv = document.getElementById("homePanel");
let icons = document.querySelectorAll('#userIcons li');
document.getElementById("menuFilter").onclick = function(){
    for (let i = 0; i < userIconText.length; i++) {
        for (let j = 0; j < icons.length; j++) {
            if (userIconText[i].style.display !== 'block') {
                userIconText[i].style.display = "block";
                console.log("1");
                userIconDiv.setAttribute("style","width:10vw");
                icons[i].setAttribute("style","margin:75px 20px 0 10px");
                console.log("2");
                homeContainerDiv.setAttribute("style","width:85vw; transform: translateX(5%);");
                rCorners2.setAttribute("style","width: 53vw; left: 295px");
                console.log("3");
            } else {
                userIconText[i].style.display = "none";
                console.log("4");
                userIconDiv.setAttribute("style","width:5vw");
                homeContainerDiv.setAttribute("style","width:90vw");
                console.log("5");
                icons[i].removeAttribute("style", "margin");
                rCorners2.removeAttribute("style", "width");
                console.log("6");
            }
        }
    }
}

現在這是可行的,但是由於某種原因,現在該語句中的所有內容都在執行,因此為什么我有數字的控制台日志來測試它,當我單擊“menuFilter”時,我檢查了控制台日志並顯示了數字從 1 到 6。我只是不明白為什么現在會發生這種情況,它昨天有效,現在我遇到了這個問題。 所以真的,當我第一次點擊“menuFilter”時,它應該只是 else 執行之前的所有內容,然后當我再次點擊它時,它應該是 else 之后的所有內容。 任何關於如何排序的建議將不勝感激

if-else 在兩個 for 循環中。

在不同的重復上,它可能會觸發不同的 if 分支。

這就是我可以根據您發布的代碼判斷的內容。

解決了問題,感謝幫助。 對於 userIconText 有 7 個元素,並且由於進行了更改,在圖標中有 8 個元素,所以似乎正因為如此,它運行的重復次數超出了它應該運行的次數,這導致它運行了之后的部件else 條件也是如此。

所以我所做的是將以下內容添加到第二個 for 循環中:

    for (let j = 0; j < icons.length; j++) {
        if(icons[j].classList.contains("hidden-search")) {
        continue;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM