一.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. NodeJS基础总结(一)

    NodeJS官网网址:https://nodejs.org/en/ 使用require方法加载fs核心模块 var fs = require('fs'); 一.读取文件//   第一个参数就是尧读取的 ...

  2. pip安装库时报错,使用国内镜像加速

    pip install requests或pip --trusted-host pypi.python.org install requests报错: 原因:网上解释为网速太慢,或被防火墙 解决方法: ...

  3. UML入门学习

    在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...

  4. python标准库总的random函数用法

    Python标准库中的random函数,可以生成随机浮点数.整数.字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据等.random中的一些重要函数的用法:1 ).random() 返回0& ...

  5. 【记录】【3】设置bing为chrome的默认搜索引擎

    方法:设置→搜索→管理搜索引擎→其他搜索引擎→设置bing搜索的网址为  http://cn.bing.com/search?q=%s 注:search?q=%s   是必须的,否则无法将其设置为默认 ...

  6. 169. Majority Element求众数

    网址:https://leetcode.com/problems/majority-element/ 参考:https://blog.csdn.net/u014248127/article/detai ...

  7. project euler做题记录

    ProjectEuler_做题记录 简单记录一下. problem 441 The inverse summation of coprime couples 神仙题.考虑答案为: \[\begin{a ...

  8. labview web发布局域网内访问

    按照labview的web访问具体步骤操作完之后,把电脑的网络要设置在局域网环境下,网络要处于专用网络中,就可以进行局域网内访问

  9. 《Python量化交易教程》第一部分新手入门 第1天:谁来给我讲讲Python?

    一.量化投资视频学习课程 二.Python手把手教学 第1天:谁来给我讲讲Python? PS: 1.注意使用方法,这个以后都有大用 2.注意符号的使用方式 3.尽量用英文表达 4.本日学习内容以及其 ...

  10. dom 及bom

    BOM的全称为Browser Object Mode,中文名是浏览器对象模型.它的一些功能和特性如下:1. BOM提供了独立于内容而与浏览器窗口进行交互的对象2. 由于BOM主要用于管理窗口与窗口之间 ...