我正在创建一个循环,它查找类中包含字符“L”并对每个元素执行innerHTML命令的所有元素。这个循环似乎工作正常,直到我实际做i.innerHTML ='',其中i是L字符串的数组。为什么我不能这样做呢?如果我做一个console.log(i);在if语句中,我得到了正确的数组。
letts = document.getElementsByClassName('span2');
for(i in letts){
if(i.indexOf('L') !== -1){
i.innerHTML = '';
}
}
答案 0 :(得分:3)
你做错了。
i
循环中的 for .. in
是指对象属性名称。最好使用简单的NodeList
循环迭代for
个集合(作为数组),如下所述。
var letts = document.getElementsByClassName("span2");
for (var i = 0, len = letts.length; i < len; i++) {
if (letts[i].innerHTML.indexOf("L") > -1) {
letts[i].innerHTML = "";
}
}
答案 1 :(得分:1)
你的i
in - in循环是指index
(基于0)。你应该使用
for(i in letts){
if(letts[i].indexOf('L') !== -1){
...
或
for (var i = 0, i < letts.length; i++) {
...
答案 2 :(得分:0)