原生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 27 Javascript
jscript之Open an Excel Spreadsheet
Jun 13 Javascript
Javacript实现颜色梯度变化和渐变的效果代码
May 31 Javascript
js原型链与继承解析(初体验)
May 09 Javascript
KnockoutJS 3.X API 第四章之click绑定
Oct 10 Javascript
Node.js学习入门
Jan 03 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
Mar 01 Javascript
深入理解node.js之path模块
May 03 Javascript
vue2+el-menu实现路由跳转及当前项的设置方法实例
Nov 07 Javascript
vue-cli初始化项目中使用less的方法
Aug 09 Javascript
es6基础学习之解构赋值
Dec 10 Javascript
React+EggJs实现断点续传的示例代码
Jul 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
PHP开发APP端微信支付功能
2017/02/17 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
swoole_process实现进程池的方法示例
2018/10/29 PHP
php实现统计IP数及在线人数的示例代码
2020/07/22 PHP
JavaScript 事件系统
2010/07/22 Javascript
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
IE浏览器不支持getElementsByClassName的解决方法
2014/08/27 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
2015/03/13 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
2015/08/04 Javascript
jQuery实现微信长按识别二维码功能
2016/08/26 Javascript
JS实现的适合做faq或menu滑动效果示例
2016/11/17 Javascript
详解使用Node.js 将txt文件转为Excel文件
2017/07/05 Javascript
vue.js使用v-model指令实现的数据双向绑定功能示例
2018/05/22 Javascript
vue3修改link标签默认icon无效问题详解
2019/10/09 Javascript
用Python创建声明性迷你语言的教程
2015/04/13 Python
python使用urllib2提交http post请求的方法
2015/05/26 Python
python实现在windows服务中新建进程的方法
2015/06/30 Python
对python中dict和json的区别详解
2018/12/18 Python
对Python3 pyc 文件的使用详解
2019/02/16 Python
python调用其他文件函数或类的示例
2019/07/16 Python
Python 写入训练日志文件并控制台输出解析
2019/08/13 Python
tensorflow之获取tensor的shape作为max_pool的ksize实例
2020/01/04 Python
python获取依赖包和安装依赖包教程
2020/02/13 Python
使用python求斐波那契数列中第n个数的值示例代码
2020/07/26 Python
利用HTML5的新特点实现图片文件异步上传
2014/05/29 HTML / CSS
新西兰领先的鞋类和靴子网上商城:Merchant 1948
2017/09/08 全球购物
宝拉珍选官方旗舰店:2%水杨酸精华液,收缩毛孔粗大和祛痘
2018/07/01 全球购物
英国乐购杂货:Tesco Groceries
2018/11/29 全球购物
软件测试题目
2013/02/27 面试题
护理学中专毕业生求职信
2013/11/11 职场文书
中学生自我评价范文
2015/03/03 职场文书
幼儿园大班开学寄语(2015秋季)
2015/05/27 职场文书
《没有任何借口》读后感:完美的执行能力
2020/01/07 职场文书
英镑符号 £
2022/02/17 杂记
【DOTA2】半决赛强强对话~ PSG LGD vs EHOME - DPC 2022 CN REGIONAL FINALS WINTER
2022/04/02 DOTA
基于CSS制作创意端午节专属加载特效
2022/06/01 HTML / CSS