原生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 相关文章推荐
js parentElement和offsetParent之间的区别
Mar 23 Javascript
深入理解JavaScript系列(11) 执行上下文(Execution Contexts)
Jan 15 Javascript
event.currentTarget与event.target的区别介绍
Dec 31 Javascript
如何将php数组或者对象传递给javascript
Mar 20 Javascript
单元选择合并变色示例代码
May 26 Javascript
IE中图片的onload事件无效问题和解决方法
Jun 06 Javascript
超棒的响应式布局jQuery插件Freetile.js
Nov 17 Javascript
jQuery+ajax实现动态执行脚本的方法
Jan 27 Javascript
ES6中Math对象新增的方法实例详解
Apr 25 Javascript
JavaScript实现树的遍历算法示例【广度优先与深度优先】
Oct 26 Javascript
Vue组件中prop属性使用说明实例代码详解
May 31 Javascript
vue 点击按钮增加一行的方法
Sep 07 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
手把手教你使用DedeCms V3的在线采集图文教程
2007/04/03 PHP
Laravel中log无法写入问题的解决
2017/06/17 PHP
在js中判断checkboxlist(.net控件客户端id)是否有选中
2013/04/11 Javascript
jQuery - css() 方法示例详解
2014/01/16 Javascript
jQuery Ajax()方法使用指南
2014/11/19 Javascript
JavaScript中的数组特性介绍
2014/12/30 Javascript
单击按钮发送验证码,出现倒计时的简单实例
2017/03/17 Javascript
Vue指令的钩子函数使用方法
2017/03/20 Javascript
react native实现往服务器上传网络图片的实例
2017/08/07 Javascript
React通过父组件传递类名给子组件的实现方法
2017/11/13 Javascript
小程序实现单选多选功能
2018/11/04 Javascript
详解Vue中组件传值的多重实现方式
2019/08/16 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
Python中处理时间的几种方法小结
2015/04/09 Python
Python实现递归遍历文件夹并删除文件
2016/04/18 Python
Python使用flask框架操作sqlite3的两种方式
2018/01/31 Python
Python实现删除时保留特定文件夹和文件的示例
2018/04/27 Python
用Python读取几十万行文本数据
2018/12/24 Python
基于Python下载网络图片方法汇总代码实例
2020/06/24 Python
python中id函数运行方式
2020/07/03 Python
浅析css3中matrix函数的使用
2016/06/06 HTML / CSS
adidas澳大利亚官方网站:adidas Australia
2018/04/15 全球购物
eBay加拿大站:eBay.ca
2019/06/20 全球购物
JavaScript实现前端网页版倒计时
2021/03/24 Javascript
网络工程师的自我评价
2013/10/02 职场文书
工作作风承诺书
2014/08/30 职场文书
工资收入证明样本(5篇)
2014/09/16 职场文书
学历证明样本
2015/06/16 职场文书
婚礼上证婚人致辞
2015/07/28 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书
公文写作:工伤事故分析报告怎么写?
2019/11/05 职场文书
Python 流媒体播放器的实现(基于VLC)
2021/04/28 Python
K8s部署发布Golang应用程序的实现方法
2021/07/16 Golang
python中的getter与setter你了解吗
2022/03/24 Python
Java Spring Boot请求方式与请求映射过程分析
2022/06/25 Java/Android
如何用H5实现好玩的2048小游戏
2022/07/23 HTML / CSS