原生JS和jQuery操作DOM對(duì)比總結(jié)
一、創(chuàng)建元素節(jié)點(diǎn)
1.1 原生JS創(chuàng)建元素節(jié)點(diǎn)
document.createElement("p");
1.2 jQuery創(chuàng)建元素節(jié)點(diǎn)
$('<p></p>');`
二、創(chuàng)建并添加文本節(jié)點(diǎn)
2.1 原生JS創(chuàng)建文本節(jié)點(diǎn)
`document.createTextNode("Text Content");
通常創(chuàng)建文本節(jié)點(diǎn)和創(chuàng)建元素節(jié)點(diǎn)配合使用,比如:
var textEl = document.createTextNode("Hello World."); var pEl = document.createElement("p"); pEl.appendChild(textEl);
2.2 jQuery創(chuàng)建并添加文本節(jié)點(diǎn):
var $p = $('<p>Hello World.</p>');
三、復(fù)制節(jié)點(diǎn)
3.1 原生JS復(fù)制節(jié)點(diǎn):
var newEl = pEl.cloneNode(true); `
true和false的區(qū)別:
- true :克隆整個(gè)'<p>Hello World.</p>'節(jié)點(diǎn)
- false:只克隆'<p></p>' ,不克隆文本Hello World.'
3.2 jQuery復(fù)制節(jié)點(diǎn)
$newEl = $('#pEl').clone(true);
注意:克隆節(jié)點(diǎn)要避免`ID重復(fù)
四、 插入節(jié)點(diǎn)
4.1 原生JS向子節(jié)點(diǎn)列表的末尾添加新的子節(jié)點(diǎn)
El.appendChild(newNode);
原生JS在節(jié)點(diǎn)的已有子節(jié)點(diǎn)之前插入一個(gè)新的子節(jié)點(diǎn):
El.insertBefore(newNode, targetNode);
4.2 在jQuery中,插入節(jié)點(diǎn)的方法比原生JS多的多
在匹配元素子節(jié)點(diǎn)列表結(jié)尾添加內(nèi)容
$('#El').append('<p>Hello World.</p>');
把匹配元素添加到目標(biāo)元素子節(jié)點(diǎn)列表結(jié)尾
$('<p>Hello World.</p>').appendTo('#El');
在匹配元素子節(jié)點(diǎn)列表開頭添加內(nèi)容
$('#El').prepend('<p>Hello World.</p>');
把匹配元素添加到目標(biāo)元素子節(jié)點(diǎn)列表開頭
$('<p>Hello World.</p>').prependTo('#El');
在匹配元素之前添加目標(biāo)內(nèi)容
$('#El').before('<p>Hello World.</p>');
把匹配元素添加到目標(biāo)元素之前
$('<p>Hello World.</p>').insertBefore('#El');
在匹配元素之后添加目標(biāo)內(nèi)容
$('#El').after('<p>Hello World.</p>');
把匹配元素添加到目標(biāo)元素之后
$('<p>Hello World.</p>').insertAfter('#El');
五、刪除節(jié)點(diǎn)
5.1 原生JS刪除節(jié)點(diǎn)
El.parentNode.removeChild(El);
5.2 jQuery刪除節(jié)點(diǎn)
$('#El').remove();
六、替換節(jié)點(diǎn)
6.1 原生JS替換節(jié)點(diǎn)
El.repalceChild(newNode, oldNode);
注意:oldNode必須是parentEl真實(shí)存在的一個(gè)子節(jié)點(diǎn)
6.2 jQuery替換節(jié)點(diǎn)
$('p').replaceWith('<p>Hello World.</p>');
七、設(shè)置屬性/獲取屬性
7.1 原生JS設(shè)置屬性/獲取屬性
imgEl.setAttribute("title", "logo"); imgEl.getAttribute("title"); checkboxEl.checked = true; checkboxEl.checked;
7.2 jQuery設(shè)置屬性/獲取屬性:
$("#logo").attr({"title": "logo"}); $("#logo").attr("title"); $("#checkbox").prop({"checked": true}); $("#checkbox").prop("checked");
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。
相關(guān)文章
js圖片實(shí)時(shí)加載提供網(wǎng)頁(yè)打開速度
沒(méi)必要一開始加載就要把全部圖片加載出來(lái),這樣子打開網(wǎng)面的速度得到了很好提高,下面有個(gè)不錯(cuò)的思路,大家可以看看2014-09-09js DIV滾動(dòng)條隨機(jī)位置的設(shè)置技巧
剛才一個(gè)朋友告訴我他的blog友情鏈接太多了,所以把所有鏈接放到一個(gè)DIV中,加了個(gè)滾動(dòng)條,可是他又不想每次別人來(lái)看,看到的都是前面幾個(gè)鏈接,于是問(wèn)我有沒(méi)有什么辦法,想了一個(gè),呵呵,正好有個(gè)辦法2008-11-11JavaScript實(shí)現(xiàn)網(wǎng)頁(yè)留言板功能
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)網(wǎng)頁(yè)留言板功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11原生javascript實(shí)現(xiàn)拖動(dòng)元素示例代碼
首先改變被拖動(dòng)元素的布局屬性,接著捕捉鼠標(biāo)事件,當(dāng)觸發(fā)mousedown時(shí),記錄下當(dāng)前鼠標(biāo)在元素中的相對(duì)位置,接著處理mousemove事件2014-09-09ES6 迭代器與可迭代對(duì)象的實(shí)現(xiàn)
這篇文章主要介紹了ES6 迭代器與可迭代對(duì)象的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02Javascript 靜態(tài)頁(yè)面實(shí)現(xiàn)隨機(jī)顯示廣告的辦法
最近在做私服發(fā)布站時(shí),客戶要求實(shí)現(xiàn)廣告隨機(jī)排序,而且要求在html頁(yè)面實(shí)現(xiàn),也就是說(shuō)必須使用javascript來(lái)完成了。2010-11-11