jQuery 元素移除empty() remove()与detach()的区别?

时间:2022-01-08 06:13:54

@1.empty() 删除匹配元素集合中所有的后代字节点元素

<p>hello<span>world</span></p>

$("p").empty();   <p></p>

@2.remove([expr]) 接收参数表示删除指定的元素

$("p").remove()  删除所有段落

$("p").remove(".hel") 删除带有.hel类名的段落

这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素。但除了这个元素本身得以保留之外,其他的比如绑定的事件,附加的数据等都会被移除

@3.detach([expre]) 从DOM中删除所有匹配的元素

这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素。与remove()不同的是,所有绑定的事件、附加的数据等都会保留下来

<body>

<div id="google">Google</div>

<div id="apple">Apple</div>

</body>

<script type="text/javascript">

$(function () {

$("#apple").hover(function () {

$(this).text("Google+");

});

apple = $("#apple").remove();   <!-- //使用 remove() hover()事件也会被删除 -->

/*apple = $("#apple").detach();*/<!--  //使用detach() hover()事件会保存下来 -->

$("body").append(apple);

});

</script>