原生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 相关文章推荐
基于jQuery的动态表格插件
Mar 28 Javascript
分享XmlHttpRequest调用Webservice的一点心得
Jul 20 Javascript
javascript实时获取鼠标坐标值并显示的方法
Apr 30 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
Aug 12 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
Oct 08 Javascript
基于javascript制作微博发布栏效果
Apr 04 Javascript
label+input实现按钮开关切换效果的实例
Aug 16 Javascript
vue mixins组件复用的几种方式(小结)
Sep 06 Javascript
基于VUE.JS的移动端框架Mint UI的使用
Oct 11 Javascript
vue axios请求拦截实例代码
Mar 29 Javascript
在vue项目中优雅的使用SVG的方法实例详解
Dec 03 Javascript
Vue实现背景更换颜色操作
Jul 17 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 ignore_user_abort与register_shutdown_function 使用方法
2009/06/14 PHP
Zend studio文件注释模板设置方法
2013/09/29 PHP
php mb_substr()函数截取中文字符串应用示例
2014/07/29 PHP
php中explode函数用法分析
2014/11/15 PHP
javascript编程起步(第五课)
2007/02/27 Javascript
jQuery bxCarousel实现图片滚动切换效果示例代码
2013/05/15 Javascript
js从10种颜色中随机取色实现每次取出不同的颜色
2013/10/23 Javascript
js验证IP及子网掩码的合法性有效性示例
2014/04/30 Javascript
js图片滚动效果时间可随意设定当鼠标移上去时停止
2014/06/26 Javascript
JS实现仿中关村论坛评分后弹出提示效果的方法
2015/02/23 Javascript
JavaScript按值删除数组元素的方法
2015/04/24 Javascript
简介AngularJS的HTML DOM支持情况
2015/06/17 Javascript
JS+CSS实现简单滑动门(滑动菜单)效果
2015/09/19 Javascript
JavaScript对Json的增删改属性详解
2016/06/02 Javascript
用JavaScript实现让浏览器停止载入页面的方法
2017/01/19 Javascript
JS排序算法之希尔排序与快速排序实现方法
2017/12/12 Javascript
微信小程序错误this.setData报错及解决过程
2019/09/18 Javascript
浅谈JavaScript中this的指向问题
2020/07/28 Javascript
全面解析js中的原型,原型对象,原型链
2021/01/25 Javascript
[02:51]2018年度DOTA2最佳中单位选手-完美盛典
2018/12/17 DOTA
Python笔记(叁)继续学习
2012/10/24 Python
Python排序算法实例代码
2017/08/10 Python
关于python的list相关知识(推荐)
2017/08/30 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
2019/04/25 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
2019/06/14 Python
Python使用Turtle库绘制一棵西兰花
2019/11/23 Python
零基础学Python之前需要学c语言吗
2020/07/21 Python
台湾网购生鲜第一品牌:i3Fresh爱上新鲜
2017/10/26 全球购物
Vinatis德国:法国领先的葡萄酒邮购公司
2020/09/07 全球购物
什么是属性访问器
2015/10/26 面试题
毕业生应聘幼儿园的自荐信
2013/11/20 职场文书
装修五一活动策划案
2014/01/23 职场文书
上班离岗检讨书
2014/01/27 职场文书
企业年检委托书范本
2014/10/14 职场文书
2014年个人年终总结
2015/03/09 职场文书
PostgreSQL解析URL的方法
2021/08/02 PostgreSQL