使用 childNodes 处理子节点 javascript 时出现问题
我试图让 div 的所有子节点都不显示。它与 getElementsByTagname('*') 配合良好。
我的标记
<div id="container">
<div id="child1"></div>
<div id"child2">
<div id="inner-child"></div>
</div>
</div>
我想仅操作 child1、child2 的显示属性。
function hideAllChildren(){
var elem = document.getElementById("container");
var children = elem.childNodes;
alert("children " + children.length)
for (i=0; i < children.length ;i++)
{
children[i].style.display="none";// Error - children[i].style undefined
}
}
你能找出问题所在吗?
I am trying to make display none for all the child nodes of a div. It works well with getElementsByTagname('*')
My Markup
<div id="container">
<div id="child1"></div>
<div id"child2">
<div id="inner-child"></div>
</div>
</div>
I would like to manipulate the display property of only the child1, child2.
function hideAllChildren(){
var elem = document.getElementById("container");
var children = elem.childNodes;
alert("children " + children.length)
for (i=0; i < children.length ;i++)
{
children[i].style.display="none";// Error - children[i].style undefined
}
}
Can you figureout what the issue could be ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
并非所有子节点都是元素,有些是某些浏览器中的文本节点,并且文本节点没有样式属性。尝试访问不存在的属性的属性会引发错误。
首先测试节点类型或节点是否具有(其非 false 值)样式属性:
但是,您可能会发现使用类和适当的 CSS 规则并将其添加到父元素会更好。
例如
Not all the child nodes are elements, some are text nodes in some browsers and text nodes don't have a style property. Trying to access a property of a non-existant property throws an error.
Either test the node type or that the node has a (non-falsey value for its) style property first:
However, you may find it much better to use a class and appropriate CSS rule and just add it to the parent element.
e.g.
为什么要隐藏所有子节点。
您可以在其中隐藏父级,所有子级都会自动隐藏。
所以它会很简单:
Why do you want to hide all the child nodes.
Where you can hide the parent and all the child will automatically hide.
So it will be simply:
试试这个
/// java 脚本
try this
/// java script