读书人

jQuery参照实例 1.11 移除DOM元素

发布时间: 2013-04-02 12:35:26 作者: rapoo

jQuery参考实例 1.11 移除DOM元素

原文:

http://www.lifelaf.com/blog/?p=225

本文翻译自jQuery Cookbook (O’Reilly 2009) 1.11 Removing DOM Elements

需求

从DOM树中移除元素。

解决方案

用remove()方法可以将选中的元素集及其子元素从DOM树中移除。以下面的代码为例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body>  <h3>Anchors</h3>  <a href='#'>Anchor Element</a>  <a href='#'>Anchor Element</a>  <a href='#'>Anchor Element</a>  <script type="text/JavaScript"    src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>  <script type="text/JavaScript">    jQuery('a').remove();  </script></body></html>

当上述代码用浏览器打开后,在JavaScript执行之前,页面会包含超链接a元素。当remove()方法被执行后,DOM树中的超链接a元素均被移除,而页面上只剩下<h3>元素。

remove()方法还接受一个CSS表达式参数,用于对需要移除的元素进行过滤。比如,上述代码可以被改为仅移除class值为”remove”的超链接元素:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body>  <h3>Anchors</h3>  <a href='#' class='remove'>Anchor Element</a>  <a href='#'>Anchor Element</a>  <a href='#' class="remove">Anchor Element</a>  <script type="text/JavaScript"    src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>  <script type="text/JavaScript">    jQuery('a').remove('.remove');  </script></body></html>
讨论

使用jQuery的remove()方法需要注意两件事情:

使用remove()方法可以将元素从DOM树中移除,但是这些元素依然还在当前选择的jQuery元素集中。remove()方法之后的代码依旧可以对这些元素进行操作,甚至重新插入到DOM树中。remove()方法在将元素从DOM树中移除之外,还会删除所有该元素上的事件监听器与缓存数据。

读书人网 >Web前端

热点推荐