2017-07-28 50 views
1

我知道這是一個簡單的問題,但我們都必須從某個地方開始......getElementByid是否返回一個NodeList?

我還沒有找到答案,所以在這裏。

document.getElementsByClassName();document.getElementsByTagName();

回報的NodeLists。

含義,如果你想訪問你必須使用一個索引指向特定節點的節點列表

FOR EXAMPLE訪問它的元素節點:

HTML

<div id="div1"> <p> some text in here</p> </div>

<div id="div2"> <p> some text in here</p> </div>

<div id="div3"> <p> some text in here</p> </div>

JAVASCRIPT

var x = document.getElementsByTagName("div")[0];

//returns div1

現在,您可以申請屬性和方法的對象節點。

無論其,如果你使用

document.getElementByid("div1");

這將回報與單細胞的NodeList。

而不是它返回對象節點div1本身!

因此不需要document.getElementByid("div1")[0];

這是正確的嗎?

+1

'這是否正確?'是 –

+1

僅爲了完整性,如果具有指定ID的元素不在文檔中,getElementById將返回對Element元素的引用,否則返回null。來自MDN –

回答

1

是的,你是對的。返回值是對Element對象的引用,如果具有指定ID的元素不在文檔中,則返回null。

爲什麼?因爲一個ID colud只能出現一次或零次,因此只有一個(如果ID存在)元素將返回。

+0

輝煌,這是有道理的,謝謝你的解釋! –