」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > HTMLCollections、NodeLists 和物件陣列在 DOM 操作中有何不同?

HTMLCollections、NodeLists 和物件陣列在 DOM 操作中有何不同?

發佈於2024-11-10
瀏覽:888

How do HTMLCollections, NodeLists, and Object Arrays Differ in DOM Manipulation?

區分DOM 中的HTMLCollections、NodeList 和Object Arrays

開發者在存取DOM 節點時,經常會遇到HTMLCollections、NodeLists 和&&&]開發者在存取DOM 節點時,經常會遇到HTMLCollections、NodeLists 和&&&]物件數組。了解這些資料結構之間的差異對於有效操作文件結構至關重要。

HTMLCollections 與NodeLists

HTMLCollections 和NodeLists 與節點集合有相似之處,但它們有明顯特徵:

  • 內容: HTMLCollections 僅包含Element 節點,而NodeLists 可以保存任何類型的節點。
  • 方法: 除了所有集合通用的方法之外,HTMLCollections 還提供 nameItem 方法用於按名稱存取元素。

即時集合與快照集合

DOM 集合可以是即時集合,也可以是快照集合快照:

  • 即時: 當對DOM 進行更改時,集合會自動更新。
  • 快照: 集合保持固定,無論DOM 修改。

瀏覽器方法(例如 getElementsByTagName)傳回的 DOM 集合通常是即時的,而jQuery 選擇是快照。

陣列與物件陣列

雖然jQuery 物件在控制台日誌中顯示為陣列,但它們實際上是物件陣列:

  • 陣列: 使用數字存取的順序集合索引。
  • 物件陣列: 使用數字屬性和命名屬性存取元素的陣列。

選擇節點

使用文件方法:

  • document.getElementsByTagName("td") :傳回所有td 元素的HTMLCollection。
  • document.getElementsByClassName("myRow"):傳回 NodeList所有具有「myRow」類別的元素。

使用jQuery:

  • $("td"): 選擇所有 td 元素並傳回 jQuery 對象,一個物件陣列。

範例腳本

提供的腳本示範了資料之間的差異結構:

  • console.log('[ 123,"abc",321,"cba"]=[123,"abc",321,"cba"]:比較arrays.
  • console.log('{123:123,abc:"abc",321:321,cba:"cba"}={123:123,abc:"abc",321:321 , cba:"cba"}:將物件陣列與物件進行比較語法。 &&&]
  • console.log('document.links= ',document.links): 記錄HTMLCollection links.
  • console.log('document.getElementById("myTable")=',document.getElementById("myTable")): 記錄單一元素,而不是集合。 .log('document.getElementsByClassName("myRow")=',document.getElementsByClassName("myRow")):記錄元素的NodeList "myRow" class.
  • console.log('document.getElementsByTagName(" td")=',document.getElementsByTagName("td")): 記錄所有td 元素的HTMLCollection。 log('$("td")=',$("td")): 記錄包含所有td 元素的jQuery物件數組。
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3