Javascript表达式的结果不是对象

时间:2011-06-03 00:54:28

标签: javascript typeerror

使用它来摆脱烦人的小''由''供电'盒子,但它一直在说 '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";

        }
    }   
}

2 个答案:

答案 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";