首頁 > web前端 > js教程 > 主體

以下是一些符合您文章內容的英文問答類問題標題: 更簡潔的標題: * What\'s the Difference Between HTMLCollections, NodeLists, and Arrays of Objects in the DOM? * DOM Collections: HTMLCollections, NodeLists, and Arrays - What\'s t

Mary-Kate Olsen
發布: 2024-10-31 21:53:02
原創
255 人瀏覽過

以下是一些符合您文章内容的英文问答类问题标题:

更简洁的标题:

*  What's the Difference Between HTMLCollections, NodeLists, and Arrays of Objects in the DOM?
*  DOM Collections: HTMLCollections, NodeLists, and Arrays - What's the Difference? 
*  HTMLCollections, NodeLists, and DOM

理解DOM 中HTMLCollections、NodeList 與物件陣列之間的差異

使用DOM 時,三種關鍵類型的集合發揮作用:HTMLCollections、節點清單和物件數組。這些集合中的每一個都有特定的用途,並具有其獨特的特徵。

HTMLCollections 與 NodeLists

HTMLCollections 表示與特定標籤名稱相符的 HTML 元素的集合。它們由 Document 物件的 getElementsByTagName() 方法傳回。 HTMLCollections 是即時,這意味著它們會自動反映對 DOM 所做的任何更改。它們還提供透過索引對各個元素的直接存取。另一方面,

NodeLists 是任何類型 Node 的集合(包括 HTML 元素、文字節點和註解)。它們由各種 DOM 方法傳回,例如 querySelectorAll() 和 childNodes()。 NodeList 是靜態,這表示除非明確更新,否則它們不會反映 DOM 中的變更。

jQuery 物件與 HTMLCollections 和 NodeLists

jQuery 物件與 HTMLCollections 不直接相關或節點清單。 jQuery 物件是封裝 DOM 選擇的 JavaScript 物件。它們提供了一個方便的介面,用於操作 DOM 元素並使用 jQuery 豐富的 API 增強其功能。

jQuery 選擇可以包括元素、文字節點或任何其他類型的 Node。與 NodeList 一樣,jQuery 選擇是靜態的。但是,可以使用 jQuery 的 $(...).live() 方法將它們轉換為即時 HTMLCollections。

JavaScript 陣列和集合

除了 HTMLCollections 和 NodeLists,您還可以建立JavaScript 中的物件陣列。例如,您可以將 DOM 元素儲存在陣列中,如下所示:

<code class="javascript">const elements = [document.getElementById("myElement1"), document.getElementById("myElement2")];</code>
登入後複製

JavaScript 中的陣列是動態的,不會反映對 DOM 所做的變更。它們也不提供對 HTMLCollections 或 jQuery 物件等特定方法的存取。

範例和示範

以下腳本示範了這些集合類型之間的主要區別:

<code class="javascript">$(function(){
    console.log('[123,&quot;abc&quot;,321,&quot;cba&quot;]=',[123,&quot;abc&quot;,321,&quot;cba&quot;]);
    console.log('{123:123,abc:&quot;abc&quot;,321:321,cba:&quot;cba&quot;}=',{123:123,abc:&quot;abc&quot;,321:321,cba:&quot;cba&quot;});
    console.log('Node=',Node);
    console.log('document.links=',document.links);
    console.log('document.getElementById(&quot;myTable&quot;)=',document.getElementById(&quot;myTable&quot;));
    console.log('document.getElementsByClassName(&quot;myRow&quot;)=',document.getElementsByClassName(&quot;myRow&quot;))
    console.log('document.getElementsByTagName(&quot;td&quot;)=',document.getElementsByTagName(&quot;td&quot;));
    console.log('$(&quot;#myTable&quot;)=',$(&quot;#myTable&quot;));
    console.log('$(&quot;td&quot;)=',$(&quot;td&quot;));
});</code>
登入後複製

此腳本記錄以下輸出:

[123,"abc",321,"cba"]=[123, "abc", 321, "cba"]
{123:123,abc:"abc",321:321,cba:"cba"}=Object { 123=123, abc="abc", 321=321, more...}
Node= undefined
document.links= HTMLCollection[a #, a #]
document.getElementById("myTable")= <table>
document.getElementsByClassName("myRow")= HTMLCollection[tr.myRow, tr.myRow]
document.getElementsByTagName("td")= HTMLCollection[td, td, td, td]
jQuery("#myTable")= [table#myTable]
jQuery("td")= [td, td, td, td]
登入後複製

以上是以下是一些符合您文章內容的英文問答類問題標題: 更簡潔的標題: * What\'s the Difference Between HTMLCollections, NodeLists, and Arrays of Objects in the DOM? * DOM Collections: HTMLCollections, NodeLists, and Arrays - What\'s t的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!