最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

DOM节点删除中empty和remove区别

来源:懂视网 责编:小采 时间:2020-11-27 20:12:24
文档

DOM节点删除中empty和remove区别

DOM节点删除中empty和remove区别:要移除页面上节点是开发者常见的操作,jQuery提供了几种不同的方法用来处理这个问题,这里我们开仔细了解下empty和remove方法empty 顾名思义,清空方法,但是与删除又有点不一样,因为它只移除了 指定元素中的所有子节点。这个方法不仅移除子元素(和其他后代
推荐度:
导读DOM节点删除中empty和remove区别:要移除页面上节点是开发者常见的操作,jQuery提供了几种不同的方法用来处理这个问题,这里我们开仔细了解下empty和remove方法empty 顾名思义,清空方法,但是与删除又有点不一样,因为它只移除了 指定元素中的所有子节点。这个方法不仅移除子元素(和其他后代

要移除页面上节点是开发者常见的操作,jQuery提供了几种不同的方法用来处理这个问题,这里我们开仔细了解下empty和remove方法

empty 顾名思义,清空方法,但是与删除又有点不一样,因为它只移除了 指定元素中的所有子节点。

这个方法不仅移除子元素(和其他后代元素),同样移除元素里的文本。因为,根据说明,元素里任何文本字符串都被看做是该元素的子节点。请看下面的HTML:

<p class="hello"><p>这是p标签</p></p>

如果我们通过empty方法移除里面p的所有元素,它只是清空内部的html代码,但是标记仍然留在DOM中

//通过empty处理
$('.hello').empty()
//结果:<p>这是p标签</p>被移除<p class="hello"></p>
通过empty移除了当前p元素下的所有p元素,但是本身id=test的p元素没有被删除
<!DOCTYPE html><html><head>
 <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
 <title></title>
 <script src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script>
 <style>
 p {
 background: #bbffaa;
 width: 300px;
 }
 </style></head><body>
 <h2>通过empty移除元素</h2>
 <p id="test">
 <p>p元素1</p>
 <p>p元素2</p>
 </p>
 <button>点击通过jQuery的empty移除元素</button>
 <script type="text/javascript">
 $("button").on('click', function() { //通过empty移除了当前p元素下的所有p元素
 //但是本身id=test的p元素没有被删除 $("#test").empty()
 }) </script></body></html>

remove与empty一样,都是移除元素的方法,但是remove会将元素自身移除,同时也会移除元素内部的一切,包括绑定的事件及与该元素相关的jQuery数据。

例如一段节点,绑定点击事件

<p class="hello"><p>这是P段落</p></p>$('.hello').on("click",fn)

如果不通过remove方法删除这个节点其实也很简单,但是同时需要把事件给销毁掉,这里是为了防止"内存泄漏",所以前端开发者一定要注意,绑了多少事件,不用的时候一定要记得销毁

通过remove方法移除p及其内部所有元素,remove内部会自动操作事件销毁方法,所以使用使用起来非常简单

//通过remove处理
$('.hello').remove()
//结果:<p class="hello"><p>这是P段落</p></p> 全部被移除 //节点不存在了,同事事件也会被销毁

remove表达式参数:

remove比empty好用的地方就是可以传递一个选择器表达式用来过滤将被移除的匹配元素集合,可以选择性的删除指定的节点

我们可以通过$()选择一组相同的元素,然后通过remove()传递筛选的规则,从而这样处理

<!DOCTYPE html><html><head>
 <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
 <title></title>
 <script src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script>
 <style>
 .test1 {
 background: #bbffaa;
 }
 
 .test2 {
 background: yellow;
 }
 </style></head><body>
 <h2>通过jQuery remove方法移除元素</h2>
 <p class="test1">
 <p>p元素1</p>
 <p>p元素2</p>
 </p>
 <p class="test2">
 <p>p元素3</p>
 <p>p元素4</p>
 </p>
 <button>通过点击jQuery的empty移除元素</button>
 <button>通过点击jQuery的empty移除指定元素</button>
 <script type="text/javascript">
 $("button:first").on('click', function() { //删除整个 class=test1的p节点 $(".test1").remove()
 })

 $("button:last").on('click', function() { //找到所有p元素中,包含了3的元素
 //这个也是一个过滤器的处理 $("p").remove(":contains('3')")
 }) </script></body></html>

要用到移除指定元素的时候,jQuery提供了empty()与remove([expr])二个方法,两个都是删除元素,但是两者还是有区别:

要用到移除指定元素的时候,jQuery提供了empty()与remove([expr])二个方法,两个都是删除元素,但是两者还是有区别

empty方法

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

  • empty不能删除自己本身这个节点

  • remove方法

  • 该节点与该节点所包含的所有后代节点将同时被删除

  • 提供传递一个筛选的表达式,删除指定合集中的元素

  • 声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文档

    DOM节点删除中empty和remove区别

    DOM节点删除中empty和remove区别:要移除页面上节点是开发者常见的操作,jQuery提供了几种不同的方法用来处理这个问题,这里我们开仔细了解下empty和remove方法empty 顾名思义,清空方法,但是与删除又有点不一样,因为它只移除了 指定元素中的所有子节点。这个方法不仅移除子元素(和其他后代
    推荐度:
    标签: 删除 区别 节点
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top