原生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 相关文章推荐
Google Suggest ;-) 基于js的动态下拉菜单
Oct 11 Javascript
JavaScript EasyPager 分页函数
May 25 Javascript
jQuery插件-jRating评分插件源码分析及使用方法
Dec 28 Javascript
将Datatable转化成json发送前台实现思路
Sep 06 Javascript
document.getElementBy(&quot;id&quot;)与$(&quot;#id&quot;)有什么区别
Sep 22 Javascript
页面刷新时记住滚动条的位置jquery代码
Jun 17 Javascript
JS+CSS实现可以凹陷显示选中单元格的方法
Mar 02 Javascript
jQuery控制网页打印指定区域的方法
Apr 07 Javascript
详解javascript函数的参数
Nov 10 Javascript
微信小程序登录session的使用
Mar 17 Javascript
vue中datepicker的使用教程实例代码详解
Jul 08 Javascript
layui实现三级导航菜单
Jul 26 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实现rc4加密算法代码
2012/04/25 PHP
php实现图片缩放功能类
2013/12/18 PHP
php运行时动态创建函数的方法
2015/03/16 PHP
php中关于socket的系列函数总结
2015/05/18 PHP
一个完整的PHP类包含的七种语法说明
2015/06/04 PHP
Yii2.0 模态弹出框+ajax提交表单
2016/05/22 PHP
浅谈php中的循环while、do...while、for、foreach四种循环
2016/11/05 PHP
PHP接入微信H5支付的方法示例
2019/10/28 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
asp.net网站开发中用jquery实现滚动浏览器滚动条加载数据(类似于腾讯微博)
2012/03/14 Javascript
jQuery实现表头固定效果的实例代码
2013/05/24 Javascript
JS下拉框内容左右移动效果的具体实现
2013/07/10 Javascript
JavaScript输入邮箱自动提示实例代码
2014/01/13 Javascript
Javascript中With语句用法实例
2015/05/14 Javascript
JavaScript实现获得所有兄弟节点的方法
2015/07/23 Javascript
Jquery轮播效果实现过程解析
2016/03/30 Javascript
JS产生随机数的用法小结
2016/12/10 Javascript
js实现自动图片轮播代码
2017/03/22 Javascript
微信小程序实现全局搜索代码高亮的示例
2018/03/30 Javascript
Node.js JSON模块用法实例分析
2019/01/04 Javascript
javascript删除数组元素的七个方法示例
2019/09/09 Javascript
[38:21]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS Newbee
2018/03/31 DOTA
跟老齐学Python之关于类的初步认识
2014/10/11 Python
Perl中著名的Schwartzian转换问题解决实现
2015/06/02 Python
Python中字典映射类型的学习教程
2015/08/20 Python
关于Python正则表达式 findall函数问题详解
2018/03/22 Python
python复制列表时[:]和[::]之间有什么区别
2018/10/16 Python
Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析
2019/04/27 Python
提升Python效率之使用循环机制代替递归函数
2019/07/23 Python
浅谈Selenium 控制浏览器的常用方法
2020/12/04 Python
Python爬虫自动化爬取b站实时弹幕实例方法
2021/01/26 Python
美国大城市最热门旅游景点门票:CityPASS
2016/12/16 全球购物
俄罗斯护发和专业化妆品购物网站:Hihair
2019/09/28 全球购物
英国知名小木屋定制网站:Tiger Sheds
2020/03/06 全球购物
广州御银科技股份有限公司试卷(C++)
2016/11/04 面试题
《颐和园》教学反思
2014/02/26 职场文书