Javascript是否接受getElementsByTagName中的路径

时间:2014-09-30 07:44:29

标签: javascript dom

我一直在寻找这个问题的答案:以下代码段应该有效吗?

getElementsByTagName("parent/child/grand-child");

对于这样的结构:

<parent>
  <child>
    <grand-child></grand-child>
  </child>
</parent>

我的具体问题是它在开发环境中有效,而且在生产中没有,我收到消息“此名称可能不包含'/'字符。”

如果getElementsByTagName应该使用这样的路径,我需要有关此问题的可能原因的想法。

3 个答案:

答案 0 :(得分:2)

不,getElementsByTagName只接受标记名称。

但您可以将querySelectorquerySelectorAll与CSS选择器一起使用:

var element = document.querySelector("parent child grand-child");

var elements = document.querySelectorAll("parent > child > grand-child");

答案 1 :(得分:1)

没有。 getElementsByTagName通过标记名称获取元素,而不是通过其路径获取元素。将XPath用于路径:document.evaluate(IE,再次,区别对待),或使用带有document.querySelectordocument.querySelectorAll的CSS选择器。

答案 2 :(得分:-2)

您始终可以使用jQuery通过使用选择器来迭代子元素节点。

var elem = $( "parent > child > grand-child" );