一.Js原生对象和jQuery实例对象的相互转化:

(1).原生JS对象转JQ对象:

  • $(DOM对象);

(2). JQ对象转原生JS对象:

  • $(DOM对象).get(index); //注意区分eq(index)是jQuery实例对象;
  • 直接下标访问, $(DOM对象)[index];

二.两者操作DOM的对比

一、创建元素节点

1.1 原生JS创建元素/文本节点

 document.createElement("p");

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

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

注意: 如果原生的JS想利用jQuery操作DOM的方法,必须利用上面模块一列举的,把JS原生对象转成jQuery对象. 反过来也是.

原生JS和jQuery操作DOM的区别小结的更多相关文章

  1. 原生JS与jQuery操作DOM对比

    一.创建元素节点 1.1 原生JS创建元素节点 document.createElement("p"); 1.2 jQuery创建元素节点 $('<p></p&g ...

  2. 原生js与jquery操作iframe

    1  原生js获取iframe的window对象 //方法1 document.getElementById('iframeId').contentWindow; //方法2 window.frame ...

  3. 原生js 与 jQuery对比

    1.原生JS与jQuery操作DOM对比  :   https://www.cnblogs.com/QianBoy/p/7868379.html 2.比较jQuery与JavaScript的不同功能实 ...

  4. 原生js替换jQuery各种方法-中文版

    原文https://github.com/nefe/You-D... 原生JS与jQuery操作DOM对比 You Don't Need jQuery 前端发展很快,现代浏览器原生 API 已经足够好 ...

  5. onload事件与ready事件的区别,原生js与jquery的区别

    onload事件与ready事件分别是原生js与jquery的入口函数 原生js入口函数写法: window.onload=function(){ } jquery入口函数写法: $(document ...

  6. 原生JS和JQuery的区别

    1.原生js和jQuery的入口函数加载模式不同 原生js等页面dom加载完成并且图片等资源也加载完成之后才会执行: jQuery则是等页面dom加载完成执行,不会等图片等资源也加载完成: (也就是说 ...

  7. 【前端性能】必须要掌握的原生JS实现JQuery

    很多时候,我们经常听见有人说jquery有多快多快.在这个各种类库满天飞的时候,不得不说的是,能有原生JS快吗? 是的,明显原生JS要更快,因为诸如JQuery这样的库必须要兼容各种浏览器和低版本和许 ...

  8. jQuery框架-2.jQuery操作DOM节点与jQuery.ajax方法

    一.jQuery操作DOM 内部插入操作: append(content|fn):向每个匹配的元素内部追加内容. prepend(content):向每个匹配的元素内部前置内容. 外部插入操作: af ...

  9. *jquery操作DOM总结 (原创:最全、最系统、实例展示)

    jquery操作DOM包括八个方面: 一:jquery对DOM节点的基本操作:二:jquery对DOM节点的CSS样式操作:三:jquery遍历DOM节点:四:jquery创建DOM节点:五:jque ...

随机推荐

  1. QT qss资源文件与代码分离

    在最近的Qt相关项目开发中,有不同客户提出更改logo图片的需求,每次更换一张图片需要重新添加到.qrc资源文件,并重新编译源代码生产可执行文件,操作效率极低,频繁修改源代码也 容易引起其他不可靠问题 ...

  2. Java实训课

  3. 现代 PHP 新特性 —— 闭包

    一.概述 闭包是指在创建时封装周围状态的函数,即使闭包所在的环境的不存在了,闭包中封装的状态依然存在.闭包对象实现了__invoke()魔术方法,只要变量名后有(),PHP就会查找并调用__invok ...

  4. loglog 函数的使用

    验证数值算法的正确性,有一个很重要的指标就是收敛阶($\tt\bf Convergent~Rate$) 当有误差估计: $$Error=\lVert u(x)-u_N(x) \rVert \simeq ...

  5. C# Winform 仪表盘

    winform 仪表盘相关下载链接://download.csdn.net/download/floweroflvoe/10432601?utm_source=bbsseo 控件首次拖拽上来是这样的: ...

  6. C#异步(下)

    上篇主要分析了async\await之前的一些异步模式,今天说异步的主要是指C#5的async\await异步.在此为了方便的表述,我们称async\await之前的异步为“旧异步”,async\aw ...

  7. css--nth-child的注意点

    nth-child( n ) 里面的n可以是任何整数值. 不过要取第一位开始的元素DOM对象,那么n是从1开始的 如果n值小于0或者等于0,是不会匹配任何元素,(或者超过数量)切记切记!!!! 例子: ...

  8. shell脚本学习之for循环

    1.数字循环 [root@zabbix ~]# for i in {1..10};do echo $(expr $i \* 3);done;36912151821242730 [root@zabbix ...

  9. springboot秒杀课程学习整理1-1

    1)新建一个maven工程quickStart,然后在pom文件里添加依赖 <parent> <groupId>org.springframework.boot</gro ...

  10. JS的全局变量与局部变量及变量的提升

    遇到全局变量与局部变量的时候总是出一些或多或少的问题,于是专门花时间去认真研究了一下全局变量与局部变量. 这是在网上看到的一个关于全局变量与局部变量的代码,看了下作者的解析,自己也进行了研究. < ...