使用它来摆脱烦人的小''由''供电'盒子,但它一直在说 'TypeError:表达式'divs [i]'[undefined]的结果不是对象。 我该如何解决呢?
function damnwhitebox()
{
var myBody = document.getElementsByTagName("body")[0];
divs = myBody.getElementsByTagName("div");
for(var i in divs)
{
if(divs[i].style.zIndex === 99999)
{
divs[i].style.display == "none";
}
if(divs[i].style.zIndex === "1000")
{
divs[i].style.display == "none";
}
}
}
答案 0 :(得分:3)
function damnwhitebox()
{
var myBody = document.getElementsByTagName("body")[0];
divs = myBody.getElementsByTagName("div");
for(var i =0 ; i <divs.length; i++ )
{
if(divs[i].style.zIndex === 99999)
{
divs[i].style.display = "none";
}
if(divs[i].style.zIndex === 1000)
{
divs[i].style.display = "none";
alert(divs[i].innerHTML);
}
}
}
这会奏效。在代码中,您混合了for和for循环的语法。使用这个。
For ... in意味着与对象一起使用来迭代它们的属性。如果要将其与数组一起使用,则检查是否未向元素添加新属性。因此,更好的方法是避免数组遍历的这种语法 并且你永远不应该在DOM数组上使用它(就像在这种情况下一样),因为许多JavaScript库都会扩展DOM。
答案 1 :(得分:2)
此外,您可能希望将==更改为=
divs[i].style.display = "none";