【发布时间】:2010-05-24 17:57:38
【问题描述】:
<div onclick="test(this)">
Test
<div id="child">child</div>
</div>
我想在单击父 div 时更改子 div 的样式。我如何引用它?我希望能够通过 ID 引用它,因为父 div 中的 html 可能会更改,并且孩子不会是第一个孩子等。
function test(el){
el.childNode["child"].style.display = "none";
}
类似的东西,我可以通过 id 引用子节点并设置它的样式。
谢谢。
编辑:ID 必须唯一。所以让我稍微修改一下我的问题。我不想为添加到页面的每个元素创建唯一的 ID。父 div 是动态添加的。 (有点像页面注释系统)。然后是这个子 div。我希望能够做这样的事情:el.getElementsByName("options").item(0).style.display = "block";
如果我用文档替换 el,它可以正常工作,但它不适用于页面上的每个“选项”子 div。然而,我希望能够单击父 div,并让子 div 做一些事情(例如走开)。
如果我必须动态创建一百万个(夸张的)div ID,我会这样做,但我宁愿不这样做。有什么想法吗?
【问题讨论】:
-
另外,我不能做 document.getElementById("child") 因为页面上可能有多个“child” id。
-
页面上不能有多个相同的 id... - 请参阅 w3schools.com/tags/att_standard_id.asp
-
同一页面上不能有相同 ID 的元素。如果是 css,请尝试使用类。
-
好的,那我可以按名字来做吗?例如,在我的函数中使用:el.getElementByName 什么的。我只需要引用父>子。孩子需要具体。
标签: javascript