以下是JavaScript代码:
// note: declaring i in this loop
for( var i=0; i<args.length; i++ ) {
var elem = args[i];
...
if( elem.attr == 'class' ) {
// note declaring arr and i in this loop
for( var arr=elem.val.split(' '), i=0; i<arr.length; i++ ) {
element.classList.add(arr[classCt]);
}
continue;
}
}
问题在于第二个for循环中的 i 与第一个for循环中声明的 i 是相同的。
虽然
var
结构允许通过逗号分隔声明多个变量,但这并不能解决问题。当将第二个循环中的 i 更改为 classCt 时,代码按预期工作。
i
更改为classCt
?第二个for循环中的i
确实与第一个相同,因为您没有使用var
重新初始化它。 - user201788