2011-04-11 113 views
1

我有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()的東西?

+0

或者:'document.querySelectorAll('div.foo> h1')' – 2011-04-11 18:30:37

+0

@ŠimeVidas:如果他只需要第一個匹配節點,那麼使用'querySelector'而不是'querySelectorAll'可能會更好一些。 – 2011-04-11 18:35:13

+0

@CD OP對DIV節點進行迭代,每次迭代他需要H1元素 - 因此他需要所有的H1元素。 – 2011-04-11 18:38:18

回答

5

號使用數組符號來獲得發現的第一個元素:

var firstHeading = div.getElementsByTagName('h1')[0]; 

編輯如果你問,如果你能在除document其他節點使用getElementsByTagName,是的,你可以。所有DOM元素節點加上document節點都有getElementsByTagName方法。

+1

我想他實際上是問你是否可以在文檔以外的東西上調用.getElementsByTagName,比如你的例子中的div。至少,我認爲他是? – Robert 2011-04-11 18:20:39

+0

@Robert:OP詢問是否有DOM元素的getElementByTagName(單數)方法。 – 2011-04-11 18:21:45

+0

我的錯誤 - 我試過,但在我的代碼中有一個錯字。謝謝 – 2011-04-11 18:29:02