簡體   English   中英

function 中的第二個 for 循環不起作用

[英]The second for loop in a function doesn't work

我有一個 function 如下所示:

function launching() {

    let ranges = document.getElementsByClassName('range');
    liczba2 = 0;
    console.log(ranges);

    let czeks = document.getElementsByClassName('check');
    liczba = 0;
    eluwina = 0;

    for (let i = 0; i <= czeks.length; i++) {
        if (czeks[i].checked) {
            liczba ++;
            console.log(liczba);

        }
    }

    for (let n = 0; ranges.length; n++) {
        let val = ranges.getAttribute('value');
        console.log(val);
    }
}

第一個 for 循環工作正常。 然而第二個:

for (let n = 0; ranges.length; n++) {
        let val = ranges.getAttribute('value');
        console.log(val);
    }

根本不起作用。 即使第一次循環后只有控制台日志,它也不會執行。 如果有人可以幫助我,我將不勝感激。 提前致謝:)。

第二個循環應該是:

 for (let n = 0; n < ranges.length; n++) { let val = ranges[n].getAttribute('value'); console.log(val); }

在您的代碼中,如果ranges.length == 0 ,循環將立即結束,因為條件ranges.length是錯誤的。 否則會導致死循環,因為ranges.length的值不會改變,非零值是真的。

但是,循環將停止,因為ranges.getAttribute('value')會出錯。 ranges是一個NodeList ,而不是單個元素,並且它沒有getAttribute()方法。 您需要對其進行索引以獲取迭代中的當前元素。

暫無
暫無

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

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