如何删除jQuery组中其他成员的后代元素
How can I remove elements of a jQuery group that are descendants of other members?
假设我收集了一组与某个选择器匹配的jQuery DOM节点,并且该选择器使得一些匹配的节点可能是其他匹配的后代,例如:
<div class="row">
<!-- ... -->
<div class="row"><!-- ... --></div>
<!-- ... -->
</div>
<div class="row">
<!-- ... -->
<div class="row">
<!-- ... -->
<div class="row"><!-- ... --></div>
</div>
<div class="row"><!-- ... --></div>
<!-- ... -->
</div>
$rows = $('.row');
现在假设我要采取的操作将影响每个节点的整个子树,并且我需要确保我最多对任何给定的DOM节点执行一次操作。如何删除我的组中属于同一组其他成员后代的所有元素?
我发现实现这一点的最简单、最干净的方法是将$.fn.not()
和$.fn.find()
:的行为结合起来
var $rows = $('.row');
$rows = $rows.not($rows.find($rows));
$elems.find($elems)
将返回$elems
的所有成员,这些成员是$elems
的一个或多个成员的后代(不包括元素本身,因此不用担心)。$elems.not(group)
将仅返回不在group
中的$elems
的成员。这将一起查找作为其他成员的子级的$elems
的所有成员,然后返回其他所有成员。
相关文章:
- 如何添加浮动和非浮动,其他
- 与其他库的jQuery.noConflict()
- 播放当前视频时如何停止其他视频?JavaScript
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- 除修剪外的其他功能
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- Array.length似乎不起作用;console.log则显示其他情况
- 如何消除代码中的未定义和其他问题
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- jquery代码在Mozilla中有效,但在其他浏览器上无效
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- Jquery未定义函数正在停止其他操作
- 如何将我的javascript库公开给其他客户端使用
- Javascript阻止其他Javascript代码
- Web应用程序,将成员状态更新为其他成员
- 如何删除jQuery组中其他成员的后代元素
- JavaScript,在匿名对象创建期间访问其他成员
- 我试过了,但调用成员单击不适用于输入按钮,它与其他按钮非常不同
- 当用作其他对象的事件处理程序时,访问方法中的成员