【发布时间】:2011-12-09 01:01:07
【问题描述】:
我有一个元素数组myRoots。我想从数组中找到与某个选择器匹配的所有元素或数组中某个元素的后代(假设是div)。
您可以将其视为myRoots.find('div') 和myRoots.filter('div') 的组合。我想我可以把它写成$.merge(myRoots.find('div'), myRoots.filter('div')),但想avoid repeating myself(myRoots 和选择器重复)。有没有更好的办法?
在 XPath 中,这对应于 descendant-or-self axis,您可以写成 $myRoots/descendant-or-self::div。
【问题讨论】:
-
你可以很容易地写一个插件来做到这一点,虽然我会说如果你需要这样做,那么你可能应该重新考虑你的标记。
-
@Ilia,descendant-or-self 在许多树遍历的情况下都有意义,无论是在 HTML、XML 还是许多其他树中。 XPath 在 1999 年有这个轴是有原因的,它在 jQuery 中严重缺失。
-
我不太同意这样的选择在 HTML 的上下文中是有意义的,但如果你真的想要的话,它是一个非常简单的插件。