[英]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.