Heim  >  Artikel  >  Web-Frontend  >  原生JS和jQuery操作DOM对比总结

原生JS和jQuery操作DOM对比总结

迷茫
迷茫Original
2017-01-24 15:59:401474Durchsuche

原生JS和jQuery操作DOM的一些对比总结,文中总结了很多的对比,相信对大家的学习或者工作能带来一定的帮助,需要的朋友可以参考借鉴,下面来一起看看吧。

一、创建元素节点

1.1 原生JS创建元素节点

document.createElement("p");

1.2 jQuery创建元素节点

$(&#39;<p></p>&#39;);`

二、创建并添加文本节点

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 = $(&#39;<p>Hello World.</p>&#39;);

三、复制节点

3.1 原生JS复制节点:

var newEl = pEl.cloneNode(true);

true和false的区别:

  1. true :克隆整个'e388a4556c0f65e1904146cc1a846beeHello World.94b3e26ee717c64999d7867364b1b4a3'节点

  2. false:只克隆'e388a4556c0f65e1904146cc1a846bee94b3e26ee717c64999d7867364b1b4a3' ,不克隆文本Hello World.

3.2 jQuery复制节点

$newEl = $(&#39;#pEl&#39;).clone(true);

注意:克隆节点要避免`ID重复

四、 插入节点

4.1 原生JS向子节点列表的末尾添加新的子节点

El.appendChild(newNode);

原生JS在节点的已有子节点之前插入一个新的子节点:

El.insertBefore(newNode, targetNode);

4.2 在jQuery中,插入节点的方法比原生JS多的多

在匹配元素子节点列表结尾添加内容 

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

把匹配元素添加到目标元素子节点列表结尾

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

在匹配元素子节点列表开头添加内容 

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

把匹配元素添加到目标元素子节点列表开头

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

在匹配元素之前添加目标内容

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

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

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

在匹配元素之后添加目标内容

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

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

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

五、删除节点

5.1 原生JS删除节点

El.parentNode.removeChild(El);

5.2 jQuery删除节点

$(&#39;#El&#39;).remove();

六、替换节点

6.1 原生JS替换节点

El.repalceChild(newNode, oldNode);

注意:oldNode必须是parentEl真实存在的一个子节点

6.2 jQuery替换节点

$(&#39;p&#39;).replaceWith(&#39;<p>Hello World.</p>&#39;);

七、设置属性/获取属性

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");

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn