我一直在寻找这个问题的答案:以下代码段应该有效吗?
getElementsByTagName("parent/child/grand-child");
对于这样的结构:
<parent>
<child>
<grand-child></grand-child>
</child>
</parent>
我的具体问题是它在开发环境中有效,而且在生产中没有,我收到消息“此名称可能不包含'/'字符。”
如果getElementsByTagName应该使用这样的路径,我需要有关此问题的可能原因的想法。
答案 0 :(得分:2)
不,getElementsByTagName
只接受标记名称。
但您可以将querySelector
和querySelectorAll
与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.querySelector
和document.querySelectorAll
的CSS选择器。
答案 2 :(得分:-2)
您始终可以使用jQuery通过使用选择器来迭代子元素节点。
var elem = $( "parent > child > grand-child" );