is there a way to get the intersect of selectors in jQuery
我有一套4种元素。每个类都属于4个类中的2个,因此每个类的组合都是唯一的。我想找到一种方法,通过jquery,根据元素的唯一类组合,只选择其中一个元素。这有可能吗?
我在等什么
这合理吗?
jFiddle示例:http://jsfiddle.net/7ufyhy/
- "…基于它独特的类组合。"这是什么意思?这似乎不同于您给出的示例,它不是关于一个独特的类组合,而是(似乎)关于一个元素拥有这两个类…
- 我的意思是,对于我的示例,每个元素都有一个类的独特组合。例如,在我的JSfiddle中,只有一个DIV同时具有"jon"和"stark"类。
- 看起来是这样。但我没想到要搜索"多个"。下次我会想更多的同义词,也许我那一点点的名声不会再被抹去。
你可以的
但实际上我不明白你的小提琴跟这有什么关系。你想达到什么目的?
- 就像在CSS中一样。
- 在《小提琴》中,我试图用"jon"和"stark"两个类来实现DIV的黑色化。不过你的建议效果很好。谢谢。
- 请把它标为答案。
- @西蒙:在被问问题的前15分钟内,答案不能被标记为"接受"。
- @西蒙:我想,我只是在等计时器过期。谢谢!
对于一个仍然有效的可怕的解决方案…
1
| $('.class1').filter('.class2'); |
号
或
1
| $('.class2').filter('.class1'); |
注意,$('.class1.class2')选择器无疑是最快的解决方案。但是,如果有人看到这个答案却不知道filter()是什么,那么现在他们有了一个很好的理解,并且可以扩展这个逻辑。
考虑是否有人问"如何选择jquery中ID为whatever的元素?"显然,最快/最明显的答案是$('#id')。但是,像$('*[id="' + id + '"]')这样的答案提供了另一种见解,这种见解可能比显而易见的答案本身更有用,也可能不更有用。
- 你在开玩笑吗?
- 这是如何被否决的?这是一个有效的答案,我甚至指出这很糟糕,只是因为显而易见的解决方案是如此明显。
- 一个有效的答案是:var $elem = $('.class1'); $elem = ($elem.hasClass('class2')) ? $elem : $();。但没人会这么做。你必须承认每个人都在试图找到最好的解决办法…你的不是。你为什么要用它?
- @西蒙想找到最好的解决方案??一个简单的搜索将显示大量关于如何用jquery选择两个类的文章,这个问题是毫无价值的,因此应该得到一个毫无价值的答案。
- 我不认为那个人知道他到底想找什么,你可以在他的题目中看到。但是如果你想给出一个毫无价值的答案,那么当你被否决的时候不要惊讶。你的答案也许是对的,但质量也会被投票。
- 讽刺的是,因为在这个主题的主线中,这个相同的答案得到42票。stackoverflow.com/questions/1041344/…
- 我会取消我的投票。我不知道这场讨论会去哪里。在我看来,找到最好/最快的解决方案应该是一种吸引力,而不仅仅是任何解决方案。但如果你有其他想法…继续前进。
- @布拉德姆,不管它有什么价值,我有一个非常复杂的情况,因为太复杂的原因,打字,更好的解决方案是不适用的。另一方面,你的工作帮我省了不少头痛。