Javascript 过滤所有元素(包括自身)的快捷方式?

Javascript 过滤所有元素(包括自身)的快捷方式?,javascript,jquery,Javascript,Jquery,有没有更简短的方法来写这个 $myelements.find('*').andSelf().filter(myselector) 据我所知,如果不这样做,就无法搜索所有后代,包括它自己 如果没有这个函数,我会写一个,但如果它已经存在,我不想重新发明轮子 现予修订: 并不是更好: $($myelements + ', ' + $myelements + ' > *').filter(myselector); 不,在API中没有这样做的方法,但我认为如果使用选择器执行正常的.find()

有没有更简短的方法来写这个

$myelements.find('*').andSelf().filter(myselector)
据我所知,如果不这样做,就无法搜索所有后代,包括它自己

如果没有这个函数,我会写一个,但如果它已经存在,我不想重新发明轮子


现予修订:


并不是更好:

$($myelements + ', ' + $myelements + ' > *').filter(myselector);

不,在API中没有这样做的方法,但我认为如果使用选择器执行正常的
.find()
,然后仅对元素本身应用
.filter()
,则可能会获得更好的性能结果

var all = $myelements.find(myselector).add( $myelements.filter(myselector) );
这样,如果您使用的是有效的选择器,则可以使用
querySelectorAll

否则,您将完全使用JavaScript代码而不是本机代码(在支持的浏览器中)进行过滤


当然,你也可以把它做成插件。

不,这个轮子目前不存在(没有沿着元素层次结构走下去的“反”
closest()
方法)。你可以去发明它。但是,请记住,
和self()
确实存在,并且它的调用只需要9个字符。@Frederic:这不仅仅是9个字符,因为我需要那个愚蠢的
。在那里也找到('*')
,这可能效率低下,因为它获取的是每个元素,而不仅仅是我想要的。是的,实际上还有更多的字符你敢假设
$myelements
是一个字符串吗?前面的
$
是一个用于指示它是jquery对象的约定,这一点可以从我将它当作对象使用的事实中看出。i、 在这种情况下,Fortran并不比Java好多少:)
var all = $myelements.find(myselector).add( $myelements.filter(myselector) );