使用getElementsByName而不从文档根目录开始

时间:2010-05-20 14:24:34

标签: javascript dom

有没有办法在没有从DOM根目录开始的情况下使用getElementsByName

例如,我有一个div元素,并希望从该元素开始搜索。

如果没有,那么我是否必须编写自己的函数,以递归方式遍历子节点,或者有不同的方法来执行它。

4 个答案:

答案 0 :(得分:5)

getElementsByNamegetElementById都是document对象的成员,不属于HTMLElement原型。在现代浏览器(IE8,Firefox,Chrome,Opera)中,您可以使用element.querySelectorAll("*[name='myName']")

除此之外,您可以选择使用Sizzle之类的库或jQuery(使用Sizzle)等框架来处理选择器。

答案 1 :(得分:0)

这没有任何意义,因为文档中每个标记中每个“id”属性的值必须是唯一的。

因此,你“开始”的地方并不重要。

编辑 - 没关系,如果你在谈论getElementsByTagName

答案 2 :(得分:0)

基本上它是DOM,因此每次通过NAME或ID搜索某个元素时,都可以从某个参考点开始。

假设您想要一个名为Form1的Form中的元素,那么您可以编写

document.Form1.fieldName

将为您提供特定的字段。

但这一切都应该是绝对的道路。因为如果你有一些参考,你可以参考它的孩子。

Jquery anf yUI为获取和设置DOM元素提供了更好的支持。 JQuery简化了javascript中难以处理的事情。

尝试www.jquery.com

感谢。

答案 3 :(得分:-1)

你试过试试吗?

document.getElementsbyTagName(“div”)[0] .getElementsbyName(“your search”);

对于jQuery选择器,搜索dom元素变得相当容易。