我有HTML的东西,如在节点的子树中查找DOM节点?
<div class="foo">
<h1>foo 1</h1>
..</div>
<div class="foo">
<h1>foo 2</h1>
..</div>
查找使用的getElementsByTagName( 'DIV')的DIV节点是没有问题的。
在迭代div节点时,我需要在DIV 节点的子树内找到第一个H1。 DOM节点上是否有类似getElementByTagName()的东西?
我有HTML的东西,如在节点的子树中查找DOM节点?
<div class="foo">
<h1>foo 1</h1>
..</div>
<div class="foo">
<h1>foo 2</h1>
..</div>
查找使用的getElementsByTagName( 'DIV')的DIV节点是没有问题的。
在迭代div节点时,我需要在DIV 节点的子树内找到第一个H1。 DOM节点上是否有类似getElementByTagName()的东西?
号使用数组符号来获得发现的第一个元素:
var firstHeading = div.getElementsByTagName('h1')[0];
编辑如果你问,如果你能在除document
其他节点使用getElementsByTagName
,是的,你可以。所有DOM元素节点加上document
节点都有getElementsByTagName
方法。
我想他实际上是问你是否可以在文档以外的东西上调用.getElementsByTagName,比如你的例子中的div。至少,我认为他是? – Robert 2011-04-11 18:20:39
@Robert:OP询问是否有DOM元素的getElementByTagName(单数)方法。 – 2011-04-11 18:21:45
我的错误 - 我试过,但在我的代码中有一个错字。谢谢 – 2011-04-11 18:29:02
或者:'document.querySelectorAll('div.foo> h1')' – 2011-04-11 18:30:37
@ŠimeVidas:如果他只需要第一个匹配节点,那么使用'querySelector'而不是'querySelectorAll'可能会更好一些。 – 2011-04-11 18:35:13
@CD OP对DIV节点进行迭代,每次迭代他需要H1元素 - 因此他需要所有的H1元素。 – 2011-04-11 18:38:18