1. 程式人生 > >瞭解NodeList、HTMLCollection以及NamedNodeMap的使用

瞭解NodeList、HTMLCollection以及NamedNodeMap的使用

  1. 這三個都是類陣列物件。
  2. HTMLCollection只包含元素節點,而NodeList包含任何節點型別。
  3. HTMLCollection物件可以呼叫item()和namedItem()方法,NodeList物件只能呼叫item()方法。在獲取元素時,兩者都可以通過方括號的語法或item()方法。HTMLCollection物件允許通過namedItem()方法,傳入一個name或id獲取元素。
  4. 一些舊版本瀏覽器中的方法(如:getElementsByClassName())返回的是 NodeList 物件,而不是 HTMLCollection 物件。所有瀏覽器的 childNodes 屬性返回的是 NodeList 物件。大部分瀏覽器的 querySelectorAll() 返回 NodeList 物件。getElementsByTagName()返回HTMLCollection物件。
  5. NamedNodeMap物件是通過node.attributes屬性獲取,獲取到由該元素的所有屬性構成的偽陣列物件。

例:

<body>
<div>
  <a href="#" id="a1">1</a>
  <a href="a.html" name="a2">2</a>
</div>
</body>
<script>
	// 獲取一個HTMLCollection物件
	var res = document.getElementsByTagName("a");
	console.log(res);
	console.log(res.item(0))
	console.log(res[0])
	console.log(res.namedItem('a1'))
	console.log(res.namedItem('a2'))
	// 結果如下圖所示:
</script>