有没有办法让jQuery中的选择器相交[重复]

Posted

技术标签:

【中文标题】有没有办法让jQuery中的选择器相交[重复]【英文标题】:is there a way to get the intersect of selectors in jQuery [duplicate] 【发布时间】:2013-03-03 01:18:18 【问题描述】:

我有一组 4 个元素。每个属于 4 个类中的 2 个,因此每个类组合都是唯一的。我想找到一种方法,使用 jQuery,根据其独特的类组合仅选择一个元素。这可能吗?

我期待类似的东西

$(".class1 & .class2")

这样合理吗?

jsFiddle 示例: http://jsfiddle.net/7UfYH/

【问题讨论】:

"...基于它独特的类组合。" 这是什么意思?它似乎与您给出的示例不同,这不是关于唯一的类组合,而是(似乎)只是关于具有这两个类的元素...... 我的意思是,对于我的示例,每个元素都有一个独特的类组合。例如,在我的 jsfiddle 中,只有一个 div 同时具有“jon”和“stark”类。 看起来是这样。不过,我没想过要搜索“多个”。下次我会努力想更多的同义词,也许我的一点点名声不会再被抹杀了。 【参考方案1】:

你可以的

$(".class1.class2")

但我真的不明白你的小提琴与此有什么关系。你想达到什么目的?

【讨论】:

就像在 CSS 中一样。 在小提琴中,我试图实现将“jon”和“stark”类变为黑色的div。不过,您的建议效果很好。谢谢。 那么请标记为答案。 @Simon:在提出问题的前 15 分钟内,不能将答案标记为“已接受”。 @Simon:我想,我只是在等待计时器到期。非常感谢!【参考方案2】:

对于一个仍然有效的糟糕解决方案......

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

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

注意,$('.class1.class2') 选择器无疑是最快的解决方案。但是,如果任何看到这个答案的人从来不知道filter() 是什么,那么他们现在已经掌握得很好,并且可能能够扩展该逻辑。

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

【讨论】:

这是如何被否决的?这是一个有效的答案,我什至指出这很糟糕,只是因为显而易见的解决方案是如此明显。 一个有效的答案也是:var $elem = $('.class1'); $elem = ($elem.hasClass('class2')) ? $elem : $();。但没有人会那样做。你必须承认每个人都在努力寻找最好的解决方案……而你的不是。为什么要使用它? @Simon 试图找到最佳解决方案??一个简单的搜索就会发现大量关于如何使用 jQuery 选择两个类的帖子,这个问题毫无价值,因此应该得到一个毫无价值的答案。 嗯,我不认为那个人知道他真正想要寻找的东西,正如你在他的问题标题中看到的那样。但是,如果您想给出一个毫无价值的答案,那么当您被否决时不要感到惊讶。您的答案可能是正确的,但质量也会得到投票。 具有讽刺意味的是,在该主题的主线程中,这个相同的答案获得了 42 票。 ***.com/questions/1041344/…

以上是关于有没有办法让jQuery中的选择器相交[重复]的主要内容,如果未能解决你的问题,请参考以下文章

CSS父/祖先选择器[重复]

在jquery中过滤日期选择器中的值[重复]

SASS中的链接选择器[重复]

jquery mobile中的日期选择器在第二页中添加时重复

字符串中的jQuery选择器通配符[重复]

无法让(这个)jQuery 选择器工作