原生JS和jQuery操作DOM的区别小结
一.Js原生对象和jQuery实例对象的相互转化:
(1).原生JS对象转JQ对象:
- $(DOM对象);
(2). JQ对象转原生JS对象:
- $(DOM对象).get(index); //注意区分eq(index)是jQuery实例对象;
- 直接下标访问, $(DOM对象)[index];
二.两者操作DOM的对比
一、创建元素节点
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");
注意: 如果原生的JS想利用jQuery操作DOM的方法,必须利用上面模块一列举的,把JS原生对象转成jQuery对象. 反过来也是.
原生JS和jQuery操作DOM的区别小结的更多相关文章
- 原生JS与jQuery操作DOM对比
一.创建元素节点 1.1 原生JS创建元素节点 document.createElement("p"); 1.2 jQuery创建元素节点 $('<p></p&g ...
- 原生js与jquery操作iframe
1 原生js获取iframe的window对象 //方法1 document.getElementById('iframeId').contentWindow; //方法2 window.frame ...
- 原生js 与 jQuery对比
1.原生JS与jQuery操作DOM对比 : https://www.cnblogs.com/QianBoy/p/7868379.html 2.比较jQuery与JavaScript的不同功能实 ...
- 原生js替换jQuery各种方法-中文版
原文https://github.com/nefe/You-D... 原生JS与jQuery操作DOM对比 You Don't Need jQuery 前端发展很快,现代浏览器原生 API 已经足够好 ...
- onload事件与ready事件的区别,原生js与jquery的区别
onload事件与ready事件分别是原生js与jquery的入口函数 原生js入口函数写法: window.onload=function(){ } jquery入口函数写法: $(document ...
- 原生JS和JQuery的区别
1.原生js和jQuery的入口函数加载模式不同 原生js等页面dom加载完成并且图片等资源也加载完成之后才会执行: jQuery则是等页面dom加载完成执行,不会等图片等资源也加载完成: (也就是说 ...
- 【前端性能】必须要掌握的原生JS实现JQuery
很多时候,我们经常听见有人说jquery有多快多快.在这个各种类库满天飞的时候,不得不说的是,能有原生JS快吗? 是的,明显原生JS要更快,因为诸如JQuery这样的库必须要兼容各种浏览器和低版本和许 ...
- jQuery框架-2.jQuery操作DOM节点与jQuery.ajax方法
一.jQuery操作DOM 内部插入操作: append(content|fn):向每个匹配的元素内部追加内容. prepend(content):向每个匹配的元素内部前置内容. 外部插入操作: af ...
- *jquery操作DOM总结 (原创:最全、最系统、实例展示)
jquery操作DOM包括八个方面: 一:jquery对DOM节点的基本操作:二:jquery对DOM节点的CSS样式操作:三:jquery遍历DOM节点:四:jquery创建DOM节点:五:jque ...
随机推荐
- 20190407 Word合并单元格
很长一段时间没处理word合并单元格,又忘记了采取忽略错误的方式测试出相应单元格的行列坐标这种方式.真是浪费时间.以后再也不想为此在深夜熬命. 今晚算是和它杠上了,很想弄清楚合并单元格之后行列坐标重新 ...
- django+nginx+gunicorn+pipenv微信小程序实践笔记
一.我采用pipenv来管理虚拟环境,在本地新建虚拟环境: mkdir wxProject #进入环境目录,创建虚拟环境 pipenv install #激活虚拟环境 pipenv shell #然后 ...
- mysql5.7 timestamp错误:there can be only oneTIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE
#1293 - Incorrect table definition; there can be only oneTIMESTAMP column with CURRENT_TIMESTAMP in ...
- [ZJOI2019]麻将
这是一道麻将自动机的模板题(雾 其实这是一道dp套dp借助自动机实现的麻将好题! 首先把期望转化一下,拆成sigema p(x>i) 现在要计算i张牌不胡的概率,也就等价于计算i张牌不胡的方案数 ...
- PHP获取POST的几种方法
一.PHP获取POST数据的几种方法 方法1.最常见的方法是:$_POST['fieldname'];说明:只能接收Content-Type: application/x-www-form-urlen ...
- exe所在路径
procedure TForm1.btn1Click(Sender: TObject); begin //完整路径 E:\UsrSoft\Desktop\FileNameDemo\Project1.e ...
- idea中文乱码
- react native练习
import React, { Component } from 'react' import { Platform, StyleSheet, Text, View,Image ,FlatList} ...
- shell脚本学习之for循环
1.数字循环 [root@zabbix ~]# for i in {1..10};do echo $(expr $i \* 3);done;36912151821242730 [root@zabbix ...
- 卸载和删除wozhuan.exe
在虚拟机里面,偶然发现CPU占用居高不下,打开任务管理器,发现有多个 wozhuan.exe 进程,这是个我从来没有见过的进程,顺手卸载后,没过多久,结果又出来了,可以判断,这肯定是虚拟机中奖了.中奖 ...