我正在开发一个函数来查找另一个元素标识符中的特定元素(类似于 getElementById 但适用于任何其他元素)...因为这会引发我的错误:
var ancestor = document.getElementById('divAncestor');
var child = ancestor.getElementById('divChild');
我知道,HTML 指定 id 必须是唯一的,但现实证明,经常运行的脚本可以包含具有相同 id 的项目。所以,这就是为什么我不简单地这样称呼 child 的原因:
var ancestor = document.getElementById('divChild');
第一个选项是将此函数添加到每个 HTML 元素,或者至少是 div(因为这就是我感兴趣的内容)。第二种,也是我更喜欢的一种,是向 dom 文档添加一个方法,并通过传递父子的 ID 作为参数来调用。
这可能吗?
感谢您的宝贵时间。
最佳答案
使用这个:
document.querySelector("div#divAncestor div#divChild");
这将获取带有 id="divAncestor"
的 div
中带有 id="divChild"
的第一个 div
>
虽然 ID必须是唯一的,但根据规范,它们确实可能不是唯一的。
(浏览器处理得很好)
虽然您的首要任务“应该是”防止这种情况发生,但上面的代码是有效的。
如果有多个祖先或 child ,这应该有效:
document.querySelectorAll("div#divAncestor div#divChild");
<强> Fiddle Example
这些查询选择器的工作方式类似于 CSS 选择器。选择类,如:div.className
,多个元素,如:div、p、h1
等。
关于javascript - 是否可以向 DOM 文档添加方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13881172/