原生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游戏开发之《三国志曹操传》零部件开发(二)人物行走的实现
Jan 23 Javascript
浅谈javascript 归并方法
Jan 21 Javascript
解析Node.js异常处理中domain模块的使用方法
Feb 16 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
May 10 Javascript
轻松掌握JavaScript单例模式
Aug 25 Javascript
Vue的Flux框架之Vuex状态管理器
Jul 30 Javascript
详解angular笔记路由之angular-router
Sep 12 Javascript
js使用xml数据载体实现城市省份二级联动效果
Nov 08 Javascript
vue短信验证性能优化如何写入localstorage中
Apr 25 Javascript
vue学习笔记五:在vue项目里面使用引入公共方法详解
Apr 04 Javascript
微信小程序自定义可滑动顶部TabBar选项卡实现页面切换功能示例
May 14 Javascript
Vue3.0中Ref与Reactive的区别示例详析
Jul 07 Vue.js
原生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
wordpress自定义url参数实现路由功能的代码示例
2013/11/28 PHP
单台服务器的PHP进程之间实现共享内存的方法
2014/06/13 PHP
PHP间隔一段时间执行代码的方法
2014/12/02 PHP
PHP连接access数据库
2015/03/27 PHP
怎样搭建PHP开发环境
2015/07/28 PHP
浅谈PHP的$_SERVER[SERVER_NAME]
2017/02/04 PHP
JQuery实现自定义对话框的代码
2008/06/15 Javascript
jQuery 插件仿百度搜索框智能提示(带Value值)
2013/01/22 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
2014/01/14 Javascript
js中函数调用的两种常用方法使用介绍
2014/07/17 Javascript
JS实现的Select三级下拉菜单代码
2015/08/20 Javascript
如何实现JavaScript动态加载CSS和JS文件
2020/12/28 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
2016/04/21 Javascript
原生JS:Date对象全面解析
2016/09/06 Javascript
javascript 定时器工作原理分析
2016/12/03 Javascript
jQuery实现字符串全部替换的方法
2016/12/12 Javascript
canvas实现图片根据滑块放大缩小效果
2017/02/24 Javascript
jQuery插件zTree实现删除树子节点的方法示例
2017/03/08 Javascript
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
Popup弹出框添加数据实现方法
2017/10/27 Javascript
Node.js调用fs.renameSync报错(Error: EXDEV, cross-device link not permitted)
2017/12/27 Javascript
vue中子组件调用兄弟组件方法
2018/07/06 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
Vue 中 template 有且只能一个 root的原因解析(源码分析)
2020/04/11 Javascript
vue实现放大镜效果
2020/09/17 Javascript
python构造icmp echo请求和实现网络探测器功能代码分享
2014/01/10 Python
Python 编码处理-str与Unicode的区别
2016/09/06 Python
Python3实现转换Image图片格式
2018/06/21 Python
python3人脸识别的两种方法
2019/04/25 Python
北美三大旅游网站之一:Travelocity
2017/08/12 全球购物
澳大利亚网上书店:QBD
2021/01/09 全球购物
自我评价范文分享
2014/01/04 职场文书
政府个人对照检查材料思想汇报
2014/10/08 职场文书
房屋分割离婚协议书范本
2014/12/01 职场文书
Apache Linkis 中间件架构及快速安装步骤
2022/03/16 Servers