最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2019年11月26日 09:09:19   作者:在線瘋狂  
這篇文章主要介紹了jQuery與原生JavaScript選擇HTML元素集合用法,結(jié)合實(shí)例形式對(duì)比分析了jquery與原生JavaScript選擇頁(yè)面HTML相關(guān)操作方法、注意事項(xiàng)及運(yùn)行效率,需要的朋友可以參考下

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

通過(guò)調(diào)用document.getElementsByTagName, document.getElementsByName以及document.getElementsByClassName(部分瀏覽器不支持),可以返回HTMLCollection對(duì)象。表面上,它們與數(shù)組很類似,因?yàn)樗鼈兌及琹ength屬性并且元素都可以通過(guò)[index]方式訪問(wèn)。然而,實(shí)際上它們并不是數(shù)組;諸如push(), slice()與sort()之類的方法不受支持。

考慮下面的HTML文檔:

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

我們使用原生JavaScript的getElementsByTagName方法與jQuery選擇器分別獲取每一個(gè)paragraph節(jié)點(diǎn):

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

它們都返回了相同的節(jié)點(diǎn),因此集合長(zhǎng)度都是3:

pCollection.length: 3
pQuery.length: 3

我們現(xiàn)在再向文檔中添加一個(gè)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);

運(yùn)行結(jié)果:

pCollection.length: 4
pQuery.length: 3

HTMLCollection對(duì)象是實(shí)時(shí)的(live)。它們會(huì)在相應(yīng)文檔發(fā)生變化時(shí)自動(dòng)更新。jQuery與其他JavaScript庫(kù)也使用了諸如document.getElementsByTagName()之類的方法,但是將返回的節(jié)點(diǎn)拷貝到一個(gè)真正的數(shù)組里面。因此,查詢得到的結(jié)果反映的是文檔當(dāng)時(shí)的狀態(tài):而不會(huì)隨著文檔的變化自動(dòng)更新。

兩種方法各有利弊。例如,下面的代碼會(huì)導(dǎo)致無(wú)限循環(huán),因?yàn)镠TMLCollection的長(zhǎng)度會(huì)在<p>元素增加時(shí)自動(dòng)+1:

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

有時(shí)候,相較于靜態(tài)的jQuery節(jié)點(diǎn)集合或者重復(fù)調(diào)用選擇器,使用速度更快、原生的實(shí)時(shí)HTMLCollection更合適。幸運(yùn)的是,我們可以在需要時(shí)方便地將任何集合傳遞給jQuery,例如:

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

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

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

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

更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《JavaScript操作DOM技巧總結(jié)》、《JavaScript頁(yè)面元素操作技巧總結(jié)》、《JavaScript事件相關(guān)操作與技巧大全》、《JavaScript查找算法技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • javascript高級(jí)的文件目錄排序代碼

    javascript高級(jí)的文件目錄排序代碼

    這幾天在做一個(gè)文件管理的模塊,里面有排序的功能,產(chǎn)品經(jīng)理看了說(shuō)希望能做出更加智能的文件排序功能,就像是win7的名稱排序一樣,主要就是文件名中的數(shù)字會(huì)按大小排序,而不是直接按ascii碼 ,這兩天晚上沒(méi)事,就先寫(xiě)了這個(gè)排序方法,下個(gè)版本中就可以用上了
    2010-08-08
  • JavaScript DOM元素常見(jiàn)操作詳解【添加、刪除、修改等】

    JavaScript DOM元素常見(jiàn)操作詳解【添加、刪除、修改等】

    這篇文章主要介紹了JavaScript DOM元素常見(jiàn)操作,包括針對(duì)dom元素的添加、刪除、修改等相關(guān)操作實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-05-05
  • javascript深拷貝和淺拷貝詳解

    javascript深拷貝和淺拷貝詳解

    本文主要介紹了javascript深拷貝和淺拷貝的相關(guān)知識(shí)。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • javascript等號(hào)運(yùn)算符使用詳解

    javascript等號(hào)運(yùn)算符使用詳解

    在JavaScript中,等號(hào)由雙等號(hào)(==)表示,當(dāng)且僅當(dāng)兩個(gè)運(yùn)算數(shù)相等時(shí),它返回true。今天我們就來(lái)詳細(xì)探討下等號(hào)運(yùn)算符的問(wèn)題,并附上等號(hào)運(yùn)算符和全等號(hào)運(yùn)算符的區(qū)別分析。
    2015-04-04
  • 動(dòng)態(tài)控制Table的js代碼

    動(dòng)態(tài)控制Table的js代碼

    動(dòng)態(tài)控制Table的js代碼...
    2007-03-03
  • ES6中Object.assign方法使用詳解

    ES6中Object.assign方法使用詳解

    這篇文章主要給大家介紹了關(guān)于ES6中Object.assign方法使用的相關(guān)資料,Object.assign可以用來(lái)處理數(shù)組,但是會(huì)把數(shù)組視為對(duì)象,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • js鼠標(biāo)滑過(guò)彈出層的定位IE6bug解決辦法

    js鼠標(biāo)滑過(guò)彈出層的定位IE6bug解決辦法

    大家在寫(xiě)div+css的時(shí)候經(jīng)常會(huì)用到彈出層,由于IE6的bug,所以當(dāng)使用多個(gè)標(biāo)簽重復(fù)寫(xiě)彈出層的時(shí)候會(huì)遇到后面的層壓在了彈出層的上面;用Jquery給彈出層的z軸依次增加高度可解決.代碼很簡(jiǎn)單,效果很顯著,需要了解的朋友可以參考下
    2012-12-12
  • JavaScript柯里化函數(shù)式編程面試詳解

    JavaScript柯里化函數(shù)式編程面試詳解

    這篇文章主要介紹了JavaScript柯里化函數(shù)式編程,JS柯里化是前端面試中最常見(jiàn)的問(wèn)題之一,它可以讓你的代碼更簡(jiǎn)潔,工作更高效,感興趣想要詳細(xì)了解可以參考下文
    2023-05-05
  • js實(shí)現(xiàn)登錄彈框

    js實(shí)現(xiàn)登錄彈框

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)登錄彈框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • javascript 程序庫(kù)的比較(一)之DOM功能

    javascript 程序庫(kù)的比較(一)之DOM功能

    javascript 程序庫(kù)的比較(一)之DOM功能
    2010-04-04

最新評(píng)論

阿合奇县| 高陵县| 灵武市| 巴东县| 德化县| 那坡县| 濮阳市| 万源市| 迁安市| 丰城市| 白朗县| 琼结县| 黔南| 安国市| 连江县| 阿鲁科尔沁旗| 县级市| 木兰县| 宁河县| 航空| 巴马| 新和县| 阿克苏市| 河西区| 铜陵市| 舒城县| 伊吾县| 临桂县| 邳州市| 岳池县| 海门市| 阳朔县| 罗江县| 隆林| 古丈县| 英吉沙县| 东海县| 尚义县| 鄱阳县| 凤庆县| 宝清县|