有没有办法在jQuery中获得选择器的交叉

is there a way to get the intersect of selectors in jQuery

本问题已经有最佳答案,请猛点这里访问。

我有一套4种元素。每个类都属于4个类中的2个,因此每个类的组合都是唯一的。我想找到一种方法,通过jquery,根据元素的唯一类组合,只选择其中一个元素。这有可能吗?

我在等什么

1
$(".class1 & .class2")

这合理吗?

jFiddle示例:http://jsfiddle.net/7ufyhy/


你可以的

1
$(".class1.class2")

但实际上我不明白你的小提琴跟这有什么关系。你想达到什么目的?


对于一个仍然有效的可怕的解决方案…

1
$('.class1').filter('.class2');

1
$('.class2').filter('.class1');

注意,$('.class1.class2')选择器无疑是最快的解决方案。但是,如果有人看到这个答案却不知道filter()是什么,那么现在他们有了一个很好的理解,并且可以扩展这个逻辑。

考虑是否有人问"如何选择jquery中ID为whatever的元素?"显然,最快/最明显的答案是$('#id')。但是,像$('*[id="' + id + '"]')这样的答案提供了另一种见解,这种见解可能比显而易见的答案本身更有用,也可能不更有用。