一.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. [Web Service] Tutorial Basic Concepts

    WSDL是网络服务描述语言,是一个包含关于web service信息(如方法名,方法参数)以及如何访问它. WSDL是UDDI的一部分. 作为web service 应用程序之间的接口,发音为wiz- ...

  2. 高性能异步Socket框架

    Server: using System; using System.Collections.Generic; using System.Diagnostics; using System.Text; ...

  3. pycharm运行Django项目,提示UnicodeDecodeError: 'gbk' codec can't decode byte 0xa6

    确认pycharm编码都是utf-8的情况下,需要修改项目中settings.py 'DIRS': [ ],默认是空,将路径加入即可解决. TEMPLATES = [ { 'BACKEND': 'dj ...

  4. mysql 表关联批量更新

    项目中最近遇到了需要手动修改某个表的某个字段的数据,但是这个数据是来自别的表,需要关联,所以需要用到关联的批量更新,特此记录一下. UPDATE t_account_trans_info AS iiI ...

  5. SpringBoot使用日志

    1.日志框架 日志门面 日志实现 JCL.SLF4J.jboss-logging Log4j.JUL.Log4j2.Logback 日志门面:SLF4J 日志实现:Logback SpringBoot ...

  6. ASP.NET MVC 目录介绍

  7. laravle 整合 thrift

    1,安装thrift https://www.cnblogs.com/sunlong88/p/9965522.html 2,生成 RPC文件 thrift -r --out ./app --gen p ...

  8. 将多窗体应用程序改造为仿Chrome形式的简易方法

    需求 在我们现有的ERP应用中,他是基于WinForm设计的,在早期的设计中,我们每打开一个作业,就会新建一个窗口,就像这样: 当我们打开很多的作业时,用户要通过Windows的任务栏慢慢找到,当然, ...

  9. 关于HttpSession 和 Hibernate框架中 session异同点的简单解析

    快速理解: HttpSession中的session是一个容器用来盛基于会话机制的信息. 比喻:我把钱放进银行的保险柜里. 解析:我的钱就是我的信息,ID等 银行的保险柜就是session容器. Hi ...

  10. 深入理解hashCode

    1.hashCode的概念 (1)hashCode方法是Object类的方法,在Java里所有类都默认继承Object类,即所有类都有hashCode方法. (2)hashCode是jdk根据对象的存 ...