隐藏基于子节点列表的div的JavaScript无法正常工作

时间:2014-01-27 03:00:24

标签: javascript html hide

我试图隐藏容器div部分内的所有div,免除第一个。

这是我的HTML:

<div id="main">
    <div id="first">
        First div
    </div>
    <div id="second">
        Second div
    </div>
    <div id="third">
        Third div
    </div>
</div>

这是我的JavaScript:

function hide(){
    var target = document.getElementById("main"),
        childList = target.childNodes,
        i = 1;
    for( ; i < childList.length; i++){
        if(childList[i].nodeName !== "#text"){
            childList[i].style.display = 'none';
        };
    };
}

似乎这应该起作用并隐藏所有div免除第一个......但事实并非如此。它隐藏了所有元素。控制台中没有错误。

我该如何解决这个问题?

谢谢。

1 个答案:

答案 0 :(得分:2)

您正在使用childNodes而不是子节点。在这种情况下,你应该使用孩子。

childList = target.children

看看这个答案:What is the difference between children and childNodes in JavaScript?