原生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 相关文章推荐
JavaScript 计算当天是本年本月的第几周
Mar 22 Javascript
php结合imgareaselect实现图片裁剪
Jul 05 Javascript
js确认框confirm()用法实例详解
Jan 07 Javascript
简单介绍jsonp 使用小结
Jan 27 Javascript
jquery radio的取值_radio的选中_radio的重置方法
Sep 20 Javascript
vuex中使用对象展开运算符的示例
Sep 25 Javascript
vue.js层叠轮播效果的实例代码
Nov 08 Javascript
详解vuex commit保存数据技巧
Dec 25 Javascript
Angular(5.2-&gt;6.1)升级小结
Dec 27 Javascript
JS学习笔记之原型链和利用原型实现继承详解
May 29 Javascript
Vue父组件如何获取子组件中的变量
Jul 24 Javascript
微信小程序在text文本实现多种字体样式
Nov 08 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静态新闻列表自动生成代码
2007/06/14 PHP
也谈php网站在线人数统计
2008/04/09 PHP
WordPress主题中添加文章列表页页码导航的PHP代码实例
2015/12/22 PHP
PHP创建word文档的方法(平台无关)
2016/03/29 PHP
php版微信发红包接口用法示例
2016/09/23 PHP
JQuery 表格操作(交替显示、拖动表格行、选择行等)
2009/07/29 Javascript
jquery入门—数据删除与隔行变色以及图片预览
2013/01/07 Javascript
JQuery 操作/获取table具体代码
2013/06/13 Javascript
js计算任意值之间随机数的方法
2015/01/16 Javascript
网页禁用右键菜单和鼠标拖动选择方法小结
2015/02/25 Javascript
跟我学习javascript的基本类型和引用类型
2015/11/16 Javascript
js select实现省市区联动选择
2020/04/17 Javascript
jQuery中的siblings()是什么意思(推荐)
2016/12/29 Javascript
详解react使用react-bootstrap当轮子造车
2017/08/15 Javascript
JS沙箱模式实例分析
2017/09/04 Javascript
Angular实现的简单定时器功能示例
2017/12/28 Javascript
vue2.0 父组件给子组件传递数据的方法
2018/01/15 Javascript
浅谈Webpack打包优化技巧
2018/06/12 Javascript
从零开始学习搭建React脚手架项目
2018/08/23 Javascript
ng-events类似ionic中Events的angular全局事件
2018/09/05 Javascript
[01:06:12]VP vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python实现将数据库一键导出为Excel表格的实例
2016/12/30 Python
一条命令解决mac版本python IDLE不能输入中文问题
2018/05/15 Python
3分钟学会一个Python小技巧
2018/11/23 Python
pyqt5与matplotlib的完美结合实例
2019/06/21 Python
如何在mac版pycharm选择python版本
2020/07/21 Python
Python字符串查找基本操作代码案例
2020/10/27 Python
程序设计HTML5 Canvas API
2013/04/08 HTML / CSS
LINUX下线程,GDI类的解释
2012/04/17 面试题
servlet面试题
2012/08/20 面试题
诚实守信道德模范事迹材料
2014/08/15 职场文书
领导班子自我剖析材料
2014/08/16 职场文书
小学教师见习总结
2015/06/23 职场文书
工作后的感想
2015/08/07 职场文书
MySQL单表千万级数据处理的思路分享
2021/06/05 MySQL
Python面向对象之成员相关知识总结
2021/06/24 Python