jQuery DOM删除节点操作指南


Posted in Javascript onMarch 03, 2015

下面示例可能用到如下HTML代码:

<ul>

  <li title="t1">苹果</li>

  <li>香蕉</li>

  <li>橘子</li>

  <li>葡萄</li>

  <li>草莓</li>

</ul>

1、remove()方法:

作用:从DOM中删除所有匹配的元素,传入的参数用于根据jQuery表达式来筛选元素。

例如,删除上图中<ul>节点中的第二个<li>元素节点,jQuery代码如下:

$(document).ready(function() {

   $("ul li:eq(1)").remove();

});

当某个节点用remove()方法删除后,该节点所包含的所有后代节点将同时被删除。这个方法的返回值是一个指向已被删除的节点的引用,因此可以在以后再使用这些元素。下面的jQuery代码说明元素用remove()方法删除后,还是可以继续使用的。

var $li=$("ul li:eq(1)").remove();

$li.appendTo("ul");   //把删除的节点又重新添加到<ul>元素里

可以直接使用appendTo()方法的特性来简化以上代码:

$("ul li:eq(1)").appendTo("ul");//appendTo()方法也可以用来移动元素,移动元素时首先从文档上删除此元素,然后将该元素插入到文档中的指定节点。

另外remove()方法也可以通过传递参数来选择性地删除元素:

$("ul li").remove("li[title='t1']");

2、detach()方法:

detach()和remove()一样,也是从DOM中去掉所有匹配的元素。但需要注意的是,这个方法不会匹配的元素从jQuery对象删除,因而可以在将来再使用这些匹配的元素。与remove()不同的是,所有绑定的事件、附件的数据等都会保留下来。

通过下面的例子,可以知道它与remove()方法的区别:

$("ul li").click(function(){

   alert($(this).html());

})

var $li=$("ul li:eq(1)").detach();  //删除元素

$li.appendTo("ul");  //重新追加此元素,发现它之前绑定的事件还在,如果使用remove()方法删除元素的话,那么它之前把绑定的事件将失效;

3、empty()方法

严格来讲,empty()方法并不是删除节点,而是清除节点,它能清空元素中的所有后代节点。

$("ul li:eq(1)").empty();//获取第二个<li>元素节点后,清空此元素里的内容,注意是元素里。

运行后的结果为:

jQuery DOM删除节点操作指南

当运行代码后,第二个<li>元素的内容被清空了,只剩下<li>元素默认的符号"."。

以上就是本文所述的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
分享一道笔试题[有n个直线最多可以把一个平面分成多少个部分]
Oct 12 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
Dec 12 Javascript
删除Javascript Object中间的key
Nov 18 Javascript
javascript+canvas制作九宫格小程序
Dec 28 Javascript
鼠标经过子元素触发mouseout,mouseover事件的解决方案
Jul 26 Javascript
整理AngularJS框架使用过程当中的一些性能优化要点
Mar 05 Javascript
jQuery购物网页经典制作案例
Aug 19 Javascript
AngularJS中过滤器的使用与自定义实例代码
Sep 17 Javascript
在vue-cli脚手架中配置一个vue-router前端路由
Jul 03 Javascript
javascript与PHP动态往类中添加方法对比
Mar 21 Javascript
详解javascript中的babel到底是什么
Jun 21 Javascript
vue-calendar-component 封装多日期选择组件的实例代码
Dec 04 Vue.js
JS实现表格数据各种搜索功能的方法
Mar 03 #Javascript
深入理解JavaScript系列(27):设计模式之建造者模式详解
Mar 03 #Javascript
javascript验证身份证号
Mar 03 #Javascript
JS烟花背景效果实现方法
Mar 03 #Javascript
深入理解JavaScript系列(26):设计模式之构造函数模式详解
Mar 03 #Javascript
深入理解JavaScript系列(25):设计模式之单例模式详解
Mar 03 #Javascript
js+jquery常用知识点汇总
Mar 03 #Javascript
You might like
php如何解决无法上传大于8M的文件问题
2014/03/10 PHP
PHP使用CURL模拟登录的方法
2015/07/08 PHP
PHP获取昨天、今天及明天日期的方法
2016/02/03 PHP
判断脚本加载是否完成的方法
2009/05/26 Javascript
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
2011/08/28 Javascript
兼容主流浏览器的iframe自适应高度js脚本
2014/01/10 Javascript
Jquery实现自定义窗口随意的拖拽
2014/03/12 Javascript
js中定义一个变量并判断其是否为空的方法
2014/05/13 Javascript
详解jquery中$.ajax方法提交表单
2014/11/03 Javascript
jQuery可见性过滤器:hidden和:visibility用法实例
2015/06/24 Javascript
JavaScript中浅讲ajax图文详解
2016/11/11 Javascript
js正则表达式惰性匹配和贪婪匹配用法分析
2016/12/26 Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
2017/02/21 Javascript
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
2018/08/13 Javascript
vuex入门最详细整理
2020/03/04 Javascript
JavaScript实现点击图片换背景
2020/11/20 Javascript
[50:27]Secret vs VG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python的高级Git库 Gittle
2014/09/22 Python
Python中的Matplotlib模块入门教程
2015/04/15 Python
Python按行读取文件的实现方法【小文件和大文件读取】
2016/09/19 Python
详解python中的json的基本使用方法
2016/12/21 Python
轻量级的Web框架Flask 中模块化应用的实现
2017/09/11 Python
不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
2017/09/24 Python
对python多线程与global变量详解
2018/11/09 Python
selenium+PhantomJS爬取豆瓣读书
2019/08/26 Python
python 解压、复制、删除 文件的实例代码
2020/02/26 Python
python如何删除列为空的行
2020/07/17 Python
完美解决IE8下不兼容rgba()的问题
2017/03/31 HTML / CSS
商务日语毕业生自荐信
2013/11/23 职场文书
爱国口号
2014/06/19 职场文书
体育课外活动总结
2014/07/08 职场文书
干部作风建设工作总结
2014/10/29 职场文书
公司离职证明标准格式
2014/11/18 职场文书
小学五一劳动节活动总结
2015/02/09 职场文书
运动会通讯稿300字
2015/07/20 职场文书
js判断两个数组相等的5种方法
2022/05/06 Javascript