remove()与empty() 有删除的功能,但是remove方法会把选中的元素标签也一起删除掉,empty()只会清空元素标签中的内容,不会把选中的标签($(tag))也干掉,但会把包含的子标签DOM节点删除掉.
1. remove(),都会返回被选择的标签JQuery对象,empty()则不会返回有意义JQuery对象;
<div id="fdiv">
<p id="p1">1111</p>
<p>2222</p>
<p>3333</p>
<p>4444</p>
</div>
<div id="sdiv">
<p>aaaa</p>
<p>bbbb</p>
<p>cccc</p>
<p>dddd</p>
</div>
$("#delBtn").click(function(){
var temp=$("#p1").remove();
alert(temp.text());
$("#sdiv").append(temp);
});
输出结果:
<div id="fdiv">
<p>2222</p>
<p>3333</p>
<p>4444</p>
</div>
<div id="sdiv">
<p>aaaa</p>
<p>bbbb</p>
<p>cccc</p>
<p>dddd</p>
<p id="p1">1111</p>
</div>
2. remove()和empty()调用后,只是从DOM中删除了对应的节点或内容,但网页的源代码中不作改变:
3. remove()节点后,无法再重新获取该节点,empty()节点后,当前$(selector)的节点仍然存在,但里面的内容(文本和子节点)无法 再重新获取。
4.可以使用$("div").remove(".hide")方式进一步过滤要删除的元素,等同于 $("div[class=.hide]").remove(),删除class属性为"hide"的div。