2011-07-21 63 views
1

我知道如果我們想要查找一組元素,getElementsByTagName是我們的方法,它會返回一個NodeList。但如果我們正在尋找帶有「body」的標籤名稱,那麼爲什麼我們需要在(「body」)元素之後添加[0]? HTML文檔中只有一個body標籤。使用`getElementsByTagName`獲取單個元素

var body = document.getElementsByTagName("body")[0]; 
body.className = "unreadable"; 

爲什麼我們不能亂寫指數驗證碼[0]這樣

var body = document.getElementsByTagName("body"); 
body.className = "unreadable"; 

如果我寫這個代碼的類不可讀不會與身體標記添加...爲什麼?

回答

8

因爲document.getElementsByTagName allways返回NodeList。如果你想找到更容易的方式來檢索身體,你只能使用document.body

2

getElementsByTagName[docs]總是返回一個NodeList。具有特定標籤的元素是否僅存在一次並不重要。

如果函數表現不一致,那將會很糟糕。

+0

是的,這是真的...... –

3

getElementsByTagName返回一個NodeList。它可能沒有任何項目。它可能有一個。它可能有很多。你可以通過測試它的.length來看看它有多少。

如果它有時返回一個NodeList並且有時返回一個ElementNode,將會引起混淆。