概述 .remove( [selector ] )
返回值:jQuery
描述:将匹配元素集合从DOM中删除。(手册网注:同时移除元素上的事件及 jQuery 数据。)
和 .empty()
相似。.remove()
将元素移出DOM。
当我们想将元素自身移除时我们用 .remove()
,同时也会移除元素内部的一切,包括绑定的事件及与该元素相关的jQuery数据。要删除的元素不删除数据和事件的情况下,使用.detach()
来代替。
请看下面的HTML:
- <div class="container">
- <div class="hello">Hello</div>
- <div class="goodbye">Goodbye</div>
- </div>
可以移除任何想要移除的元素:
- $('.hello').remove();
结果如下:
- <div class="container">
- <div class="goodbye">Goodbye</div>
- </div>
如果<div class="hello">
元素里面有子元素,他们同样会被移除。还有元素上的事件及 jQuery 数据也会被删除。
我们也可以添加一个可选的选择器参数来过滤匹配的元素。例如,前面的代码可以重写为:
- $('div').remove('.hello');
结果将一样:
- <div class="container">
- <div class="goodbye">Goodbye</div>
- </div>
示例
将所有段落从DOM删除:
- <!DOCTYPE html>
- <html>
- <head>
- <style>p { background:yellow; margin:6px 0; }</style>
- <script src="http://code.jquery.com/jquery-latest.js"></script>
- </head>
- <body>
- <p>Hello</p>
- how are
- <p>you?</p>
- <button>Call remove() on paragraphs</button>
- <script>
- $("button").click(function () {
- $("p").remove();
- });
- </script>
-
- </body>
- </html>
从 DOM 中移除所有含有 "Hello" 的段落。也可以使用 $("p").filter(":contains('Hello')").remove()
达到相同的目的。
- <!DOCTYPE html>
- <html>
- <head>
- <style>p { background:yellow; margin:6px 0; }</style>
- <script src="http://code.jquery.com/jquery-latest.js"></script>
- </head>
- <body>
- <p class="hello">Hello</p>
- how are
- <p>you?</p>
-
- <button>Call remove(":contains('Hello')") on paragraphs</button>
- <script>
- $("button").click(function () {
- $("p").remove(":contains('Hello')");
- });
- </script>
-
- </body>
- </html>