返回值:jQueryempty()
从 DOM 树中移除匹配元素的的所有子节点。
-
1.0 新增empty()
该方法不仅移除子元素(还包括其后代元素),而且还包括匹配元素集合中的任何文本节点。这是因为,根据 DOM 规范,任何元素中的文本字符串都被认为是该元素的子节点。例如,有如下的 HTML:
<div class="container"> <div class="hello">Hello</div> <div class="goodbye">Goodbye</div> </div>
我们可以移除任何想要移除的元素:
$('.hello').empty();
上述的代码的执行结果是,Hello
这个文本从 DOM 树中被删除了:
<div class="container"> <div class="hello"></div> <div class="goodbye">Goodbye</div> </div>
如果在 <div class="hello">
中还嵌套了其它元素的话,它们也会被一同删除。
为了避免内存泄露,jQuery 在移除元素子元素自身之前,会先移除这些元素上绑定的 data 数据及事件处理函数。
如果你只想移除元素,但是不想删除元素上绑定的 data 数据或事件处理函数的话(这样的话,这些绑定的信息还可以在之后被重新添加回来),请使用 .detach() 方法。
示例:
移除段落中所有的子节点(包括文本节点)
<!DOCTYPE html>
<html>
<head>
<style>
p { background:yellow; }
</style>
<script src="jquery.min.js"></script>
</head>
<body>
<p>
Hello, <span>Person</span> <a href="javascript:;">and person</a>
</p>
<button>Call empty() on above paragraph</button>
<script>
$("button").click(function () {
$("p").empty();
});
</script>
</body>
</html>