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


Posted in Javascript onJanuary 19, 2017

一、创建元素节点

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

总结

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

Javascript 相关文章推荐
Mootools 1.2 手风琴(Accordion)教程
Sep 15 Javascript
jquery 表格排序、实时搜索表格内容(附图)
May 19 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
Sep 12 Javascript
全面解析Bootstrap布局组件应用
Feb 22 Javascript
jquery Deferred 快速解决异步回调的问题
Apr 05 Javascript
Node.js连接postgreSQL并进行数据操作
Dec 18 Javascript
node使用Koa2搭建web项目的方法
Oct 17 Javascript
在vue项目中使用Nprogress.js进度条的方法
Jan 31 Javascript
JavaScript中的E-mail 地址格式验证
Mar 28 Javascript
Vue封装的可编辑表格插件方法
Aug 28 Javascript
微信小程序3种位置API的使用方法详解
Aug 05 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
Aug 17 Javascript
原生js实现电商侧边导航效果
Jan 19 #Javascript
JS实现touch 点击滑动轮播实例代码
Jan 19 #Javascript
微信小程序 视图容器组件的详解及实例代码
Jan 19 #Javascript
详解前端构建工具gulpjs的使用介绍及技巧
Jan 19 #Javascript
js实现漫天星星效果
Jan 19 #Javascript
ajax 提交数据到后台jsp页面及页面跳转问题
Jan 19 #Javascript
ajax与json 获取数据并在前台使用简单实例
Jan 19 #Javascript
You might like
php一些错误处理的方法与技巧总结
2013/08/10 PHP
YII实现分页的方法
2014/07/09 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
2016/09/26 PHP
js作用域及作用域链概念理解及使用
2013/04/15 Javascript
AngularJS基础 ng-copy 指令实例代码
2016/08/01 Javascript
ionic2 tabs使用 Modal底部tab弹出框
2016/12/30 Javascript
JQuery Dialog对话框 不能通过Esc关闭的原因分析及解决办法
2017/01/18 Javascript
从零开始学习Node.js系列教程之基于connect和express框架的多页面实现数学运算示例
2017/04/13 Javascript
详解vue-router 2.0 常用基础知识点之router.push()
2017/05/10 Javascript
React-Native做一个文本输入框组件的实现代码
2017/08/10 Javascript
原生javascript实现的全屏滚动功能示例
2017/09/19 Javascript
浅析为什么a=&quot;abc&quot; 不等于 a=new String(&quot;abc&quot;)
2017/10/25 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
vue-router的HTML5 History 模式设置
2018/09/08 Javascript
深入了解Hybrid App技术的相关知识
2019/07/17 Javascript
JavaScript遍历数组的方法代码实例
2020/01/14 Javascript
JS如何实现在弹出窗口中加载页面
2020/12/03 Javascript
python 实现文件的递归拷贝实现代码
2012/08/02 Python
Python while、for、生成器、列表推导等语句的执行效率测试
2015/06/03 Python
python获取局域网占带宽最大3个ip的方法
2015/07/09 Python
Python2.x版本中基本的中文编码问题解决
2015/10/12 Python
Python箱型图绘制与特征值获取过程解析
2019/10/22 Python
Python魔法方法 容器部方法详解
2020/01/02 Python
Python单元测试及unittest框架用法实例解析
2020/07/09 Python
anaconda3安装及jupyter环境配置全教程
2020/08/24 Python
阿提哈德航空官方网站:Etihad Airways
2017/01/06 全球购物
美国领先的机场停车聚合商:Airport Parking Reservations
2020/02/28 全球购物
德国50岁以上交友网站:Lebensfreunde
2020/03/18 全球购物
澳大利亚领先的男装零售连锁店:Lowes
2020/08/07 全球购物
代领学位证书毕业证书委托书
2014/09/30 职场文书
中小学生学籍证明
2014/10/25 职场文书
2014年派出所工作总结
2014/11/21 职场文书
车间班组长竞聘书
2015/09/15 职场文书
用JS创建一个录屏功能
2021/11/11 Javascript
Python中的程序流程控制语句
2022/02/24 Python
MySQL详细讲解变量variables的用法
2022/06/21 MySQL