原生js和Jquery操作DOM


原生javascript和jQuery操作DOM的對比總結

目錄:

DOM元素節點:1)文檔節點;2)元素節點;3)屬性節點;4)文本節點;5)注釋節點
    1)創建節點
    2)選擇(訪問)節點
    3)操作:
      1)節點操作
        1)添加節點
        2)刪除節點
        3)替換節點

        4)修改內容:
          1)文本【text】
          2)html
          3)表單val
          4)改變事件

      2)CSS操作
      3)動畫

 

下文轉自:http://www.jb51.net/article/103583.htm

這篇文章主要給大家介紹了原生JS和jQuery操作DOM的一些對比總結,文中總結了很多的對比,相信對大家的學習或者工作能帶來一定的幫助,需要的朋友可以參考借鑒,下面來一起看看吧。

 

一、創建元素節點

1.1 原生JS創建元素節點 

document.createElement("p"); 
var text=  document.createTextNode("hello");//創建文本節點

 

1.2 jQuery創建元素節點 

$('<p></p>');

二、創建並添加文本節點

2.1 原生JS創建文本節點 

document.createTextNode("Text Content");

通常創建文本節點和創建元素節點配合使用,比如: 

var textEl = document.createTextNode("Hello World.");
var pEl = document.createElement("p");
pEl.appendChild(textEl);

2.2 jQuery創建並添加文本節點: 

var $p = $('<p>Hello World.</p>');

三、復制節點

3.1 原生JS復制節點: 

var newEl = pEl.cloneNode(true); 

true和false的區別:

  • true :克隆整個'<p>Hello World.</p>'節點
  • false:只克隆'<p></p>' ,不克隆文本Hello World.'

3.2 jQuery復制節點 

$newEl = $('#pEl').clone(true);

注意:克隆節點要避免`ID重復

四、 插入節點

4.1 原生JS向子節點列表的末尾添加新的子節點                                                                                                                                                               

El.appendChild(newNode);

 

原生JS在節點的已有子節點之前插入一個新的子節點: 

El.insertBefore(newNode, targetNode);

4.2 在jQuery中,插入節點的方法比原生JS多的多

在匹配元素子節點列表結尾添加內容 

$('#El').append('<p>Hello World.</p>');

把匹配元素添加到目標元素子節點列表結尾 

$('<p>Hello World.</p>').appendTo('#El');

在匹配元素子節點列表開頭添加內容 

$('#El').prepend('<p>Hello World.</p>');

把匹配元素添加到目標元素子節點列表開頭 

$('<p>Hello World.</p>').prependTo('#El');

在匹配元素之前添加目標內容 

$('#El').before('<p>Hello World.</p>');

把匹配元素添加到目標元素之前 

$('<p>Hello World.</p>').insertBefore('#El');

在匹配元素之后添加目標內容 

$('#El').after('<p>Hello World.</p>');

把匹配元素添加到目標元素之后 

$('<p>Hello World.</p>').insertAfter('#El');

五、刪除節點

5.1 原生JS刪除節點

  El.parentNode.removeChild(El);
El.parentNode.remove();

5.2 jQuery刪除節點 

$('#El').remove();

六、替換節點

6.1 原生JS替換節點 

El.repalceChild(newNode, oldNode);

注意:oldNode必須是parentEl真實存在的一個子節點

6.2 jQuery替換節點 

$('p').replaceWith('<p>Hello World.</p>');

七、設置屬性/獲取屬性

7.1 原生JS設置屬性/獲取屬性 

imgEl.setAttribute("title", "logo");
imgEl.getAttribute("title");
checkboxEl.checked = true;
checkboxEl.checked;

7.2 jQuery設置屬性/獲取屬性:

$("#logo").attr({"title": "logo"});
$("#logo").attr("title");
$("#checkbox").prop({"checked": true});
$("#checkbox").prop("checked");

 八、訪問節點

8.1原生js訪問節點方法

node.getElementById("id");//通過使用 getElementById() 方法
node.getElementsByTagName("tagname");//通過使用 getElementsByTagName() 方法
document.getElementsByClassName("intro");//通過使用 getElementsByClassName() 方法

 

  8.2原生Js訪問父,子,兄弟節點  

//訪問兄弟節點
element.nextSibling            //返回位於相同節點樹層級的下一個節點。
element.previousSibling     //返回位於相同節點樹層級的前一個元素。

//訪問父節點
element.parentNode           //返回元素的父節點。

 

  8.3jquery訪問節點方法是通過選擇器訪問,這里不詳細敘述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM