原生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 继承详解(四)
Jul 13 Javascript
JavaScript创建对象的写法
Aug 29 Javascript
jquery操作checked属性以及disabled属性的多种方法
Jun 20 Javascript
js+CSS实现模拟华丽的select控件下拉菜单效果
Sep 01 Javascript
深入理解JavaScript中的对象复制(Object Clone)
May 18 Javascript
一个简单不报错的summernote 图片上传案例
Jul 11 Javascript
jQuery实现的省市联动菜单功能示例【测试可用】
Jan 13 Javascript
基于JS实现网页中的选项卡(两种方法)
Jun 16 Javascript
vue如何截取字符串
May 06 Javascript
JS实现查找数组中对象的属性值是否存在示例
May 24 Javascript
简述vue-cli中chainWebpack的使用方法
Jul 30 Javascript
在vue中实现某一些路由页面隐藏导航栏的功能操作
Sep 21 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/01/02 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
2014/06/05 PHP
php数组去除空值函数分享
2015/02/02 PHP
php获取文件类型和文件信息的方法
2015/07/10 PHP
PHP与SQL语句常用大全
2016/12/10 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
JavaScript中的匀速运动和变速(缓冲)运动详细介绍
2012/11/11 Javascript
无缝滚动改进版支持上下左右滚动(封装成函数)
2012/12/04 Javascript
Ubuntu中搭建Nodejs开发环境过程分享
2014/06/01 NodeJs
jQuery实现简单二级下拉菜单
2015/04/12 Javascript
jQuery实用技巧必备(中)
2015/11/03 Javascript
JavaScript中对DOM节点的访问、创建、修改、删除
2015/11/16 Javascript
jQuery实现二级下拉菜单效果
2016/01/05 Javascript
js实现简单的省市县三级联动效果实例
2016/02/18 Javascript
使用AngularJS对表单提交内容进行验证的操作方法
2017/07/12 Javascript
Windows下Node.js安装及环境配置方法
2017/09/18 Javascript
Vue.JS项目中5个经典Vuex插件
2017/11/28 Javascript
原生JS实现的雪花飘落动画效果
2018/05/03 Javascript
javascript数组去重方法总结(推荐)
2019/03/20 Javascript
vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)
2019/06/04 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
[01:14]2019完美世界城市挑战赛(秋季赛)全国总决赛精彩花絮
2020/01/08 DOTA
Python中的map()函数和reduce()函数的用法
2015/04/27 Python
python数组过滤实现方法
2015/07/27 Python
python使用正则表达式匹配字符串开头并打印示例
2017/01/11 Python
Python实现FTP上传文件或文件夹实例(递归)
2017/01/16 Python
浅谈Python Opencv中gamma变换的使用详解
2018/04/02 Python
不管你的Python报什么错,用这个模块就能正常运行
2018/09/14 Python
django框架F&amp;Q 聚合与分组操作示例
2019/12/12 Python
CSS3实现各种图形的示例代码
2016/10/19 HTML / CSS
JAVA程序员面试题
2012/10/03 面试题
班级道德讲堂实施方案
2014/02/24 职场文书
《大作家的小老师》教学反思
2014/04/16 职场文书
健康证明
2015/06/19 职场文书
WordPress多语言翻译插件 - WPML使用教程
2021/04/01 PHP
Redis实现订单自动过期功能的示例代码
2021/05/08 Redis