有没有办法在没有从DOM根目录开始的情况下使用getElementsByName
。
例如,我有一个div元素,并希望从该元素开始搜索。
如果没有,那么我是否必须编写自己的函数,以递归方式遍历子节点,或者有不同的方法来执行它。
答案 0 :(得分:5)
getElementsByName
和getElementById
都是document
对象的成员,不属于HTMLElement
原型。在现代浏览器(IE8,Firefox,Chrome,Opera)中,您可以使用element.querySelectorAll("*[name='myName']")
。
答案 1 :(得分:0)
这没有任何意义,因为文档中每个标记中每个“id”属性的值必须是唯一的。
因此,你“开始”的地方并不重要。
编辑 - 没关系,如果你在谈论getElementsByTagName
答案 2 :(得分:0)
基本上它是DOM,因此每次通过NAME或ID搜索某个元素时,都可以从某个参考点开始。
假设您想要一个名为Form1
的Form中的元素,那么您可以编写
document.Form1.fieldName
将为您提供特定的字段。
但这一切都应该是绝对的道路。因为如果你有一些参考,你可以参考它的孩子。
Jquery anf yUI为获取和设置DOM元素提供了更好的支持。 JQuery简化了javascript中难以处理的事情。
感谢。
答案 3 :(得分:-1)
document.getElementsbyTagName(“div”)[0] .getElementsbyName(“your search”);
对于jQuery选择器,搜索dom元素变得相当容易。