JavaScript 隐藏基于子节点列表的 div 不起作用

标签 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,但第一个除外……但事实并非如此。它隐藏了所有元素。控制台没有错误。

我该如何解决这个问题?

谢谢。

最佳答案

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

childList = target.children

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

关于JavaScript 隐藏基于子节点列表的 div 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21372322/

相关文章:

javascript - 增强当前Javascript的显示和隐藏功能

javascript - 如何在删除列表项时刷新 Vue 组件?

javascript - 正则表达式匹配子字符串,但不是以单词为前缀

javascript - 在特定滚动级别添加背景颜色?

Javascript 周计划函数

javascript - jQuery - 如何在 DOM 底部添加新的 div

javascript - Javascript 中的窗口 ['Map' 是什么意思

javascript - 使用 jquery 获取 <a> 选择器的 Id

c# - 使用自定义样式隐藏 View 上的验证错误边框和文本

ios - UISplitViewController 不会在横向模式下隐藏 masterViewController