代码之家  ›  专栏  ›  技术社区  ›  Martin Konecny

在不从文档根目录开始的情况下使用GetElementsByName

  •  2
  • Martin Konecny  · 技术社区  · 15 年前

    有使用方法吗 getElementsByName 不从dom根目录开始。

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

    如果不是,那么我是否必须编写自己的函数来递归地遍历子节点,或者是否有其他方法来完成它。

    4 回复  |  直到 8 年前
        1
  •  5
  •   Finlay Percy    8 年前

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

    除此之外,你的选择是使用类似 Sizzle 或框架,如 jQuery (使用sizzle)处理选择器。

        2
  •  0
  •   Pointy    15 年前

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

    正因为如此,你从哪里开始并不重要。

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

        3
  •  0
  •   Parth    15 年前

    基本上它是DOM,所以每次按名称或ID搜索某个元素时,都可以从某个引用点开始。

    假设您需要表单中名为的某个元素 Form1 ,然后你可以写

    document.Form1.fieldName
    

    这将给你特定的领域。

    但这都应该是绝对路径。因为如果您有一些引用,您可以引用它的子代。

    jquery anf yui为获取和设置DOM元素提供了更好的支持。jquery简化了JavaScript中的困难。

    尝试 www.jquery.com

    谢谢。

        4
  •  -1
  •   sushil bharwani    15 年前

    你试过了吗?

    document.getElementsByTagname(“div”)[0].getElementsByName(“您的搜索”);

    同样,使用jquery选择器,搜索dom元素变得非常容易。