91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jQuery與原生JavaScript選擇HTML元素集合用法對比分析

發布時間:2020-09-11 05:37:25 來源:腳本之家 閱讀:154 作者:在線瘋狂 欄目:web開發

本文實例講述了jQuery與原生JavaScript選擇HTML元素集合用法。分享給大家供大家參考,具體如下:

通過調用document.getElementsByTagName, document.getElementsByName以及document.getElementsByClassName(部分瀏覽器不支持),可以返回HTMLCollection對象。表面上,它們與數組很類似,因為它們都包含length屬性并且元素都可以通過[index]方式訪問。然而,實際上它們并不是數組;諸如push(), slice()與sort()之類的方法不受支持。

考慮下面的HTML文檔:

<body>
  <p>Paragraph 1</p>
  <p>Paragraph 2</p>
  <p>Paragraph 3</p>
</body>

我們使用原生JavaScript的getElementsByTagName方法與jQuery選擇器分別獲取每一個paragraph節點:

var pCollection = document.getElementsByTagName("p");
var pQuery = $("p");
console.log("pCollection.length: ", pCollection.length);
console.log("pQuery.length: ", pQuery.length);

它們都返回了相同的節點,因此集合長度都是3:

pCollection.length: 3
pQuery.length: 3

我們現在再向文檔中添加一個paragraph元素,然后再觀察一下集合:

// add new paragraph
var newp = document.createElement("p");
newp.appendChild(document.createTextNode("Paragraph 4"));
document.body.appendChild(newp);
// 
// display length
console.log("pCollection.length: ", pCollection.length);
console.log("pQuery.length: ", pQuery.length);

運行結果:

pCollection.length: 4
pQuery.length: 3

HTMLCollection對象是實時的(live)。它們會在相應文檔發生變化時自動更新。jQuery與其他JavaScript庫也使用了諸如document.getElementsByTagName()之類的方法,但是將返回的節點拷貝到一個真正的數組里面。因此,查詢得到的結果反映的是文檔當時的狀態:而不會隨著文檔的變化自動更新。

兩種方法各有利弊。例如,下面的代碼會導致無限循環,因為HTMLCollection的長度會在<p>元素增加時自動+1:

var pCollection = document.getElementsByTagName("p");
for (var i = 0; i < pCollection.length; i++) {
  document.body.appendChild(pCollection[i].cloneNode(true));
}

有時候,相較于靜態的jQuery節點集合或者重復調用選擇器,使用速度更快、原生的實時HTMLCollection更合適。幸運的是,我們可以在需要時方便地將任何集合傳遞給jQuery,例如:

var pCollection = document.getElementsByTagName("p");
// ... add nodes, do work, etc ...
$(pCollection).addClass("myclass");

jQuery與其他庫可以減少開發工作量,但是,在可能的情況下,使用原生(plain old)JavaScript,可以避免額外的文件請求與處理開銷,從而寫出更加高效的代碼。

原文鏈接:http://www.sitepoint.com/javascript-vs-jquery-html-collections/

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。

更多關于JavaScript相關內容可查看本站專題:《JavaScript操作DOM技巧總結》、《JavaScript頁面元素操作技巧總結》、《JavaScript事件相關操作與技巧大全》、《JavaScript查找算法技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript錯誤與調試技巧總結》

希望本文所述對大家JavaScript程序設計有所幫助。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安远县| 水富县| 苍南县| 信宜市| 枣阳市| 沛县| 黄平县| 富阳市| 肃宁县| 庆云县| 平安县| 寿宁县| 县级市| 云梦县| 长沙县| 万州区| 神农架林区| 商丘市| 武穴市| 清丰县| 邹城市| 沙洋县| 响水县| 新蔡县| 溧阳市| 时尚| 门头沟区| 阜平县| 荔波县| 阜宁县| 明星| 紫阳县| 商河县| 搜索| 固始县| 肥乡县| 陆河县| 杂多县| 樟树市| 宜川县| 新巴尔虎右旗|