2013-03-14 85 views
1

我有一組4個元素。每個類別都屬於4個類別中的2個,因此每個類別組合都是唯一的。我想用jQuery找到一種方式,根據它的獨特類組合,僅選擇其中一個元素。這可能嗎?有沒有辦法讓jQuery中的選擇器相交

我期待像

$(".class1 & .class2") 

是這合理嗎?

的jsfiddle例如: http://jsfiddle.net/7UfYH/

+0

*「......基於它獨特的類組合。」*這是什麼意思?它看起來與你給出的例子不同,它不是關於一個獨特的類組合,而是(看似)只是一個具有這兩個類的元素...... – 2013-03-14 15:35:05

+0

我的意思是,對於我的例子,每個元素都有一個獨特的組合類。例如,在我的jsfiddle中,只有一個div同時具有「jon」和「stark」類。 – hoylemd 2013-03-14 15:39:44

+0

看起來像是。但我並不認爲要搜索「多個」。下次我會嘗試着去考慮更多的同義詞,也許我的一小部分聲望不會再被消滅。 – hoylemd 2013-03-14 15:58:28

回答

4

你可以做

$(".class1.class2") 

但我actally沒有得到你的提琴有做這一點。你想達到什麼目的?

+2

就像你在CSS中一樣。 – Boaz 2013-03-14 15:35:04

+0

在小提琴中,我試圖通過「jon」和「stark」類將黑色轉換爲div。 雖然你的建議很有效。謝謝。 – hoylemd 2013-03-14 15:37:42

+0

然後將其標記爲答案。 – iappwebdev 2013-03-14 15:43:45

2

對於一個可怕的解決方案,仍然工作......

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

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

注意,$(」。class1.class2' )選擇無疑是最快的解決方案。但是,如果看到這個答案的人從來不知道filter()是什麼,現在他們有一個體面的把握,並且可能能夠擴展這個邏輯。

想想看,如果有人問「如何在jQuery中選擇帶ID的元素?」顯然,最快/最明顯的答案是$('#id')。但是像$('*[id="' + id + '"]')這樣的答案提供了另一種見解,它可能比明顯的答案本身更有用也可能不更有用。

+0

你在開玩笑嗎? – iappwebdev 2013-03-14 15:36:15

+0

這是如何被低估?這是一個有效的答案,我甚至指出它很糟糕,只是因爲明顯的解決方案非常明顯。 – 2013-03-14 15:38:02

+1

有效的答案也是:'var $ elem = $('。class1'); $ elem =($ elem.hasClass('class2'))? $ elem:$();'。但沒有人會這樣做。而且你必須承認,每個人都在試圖找到最好的解決方案......而你的不是。你爲什麼要使用它? – iappwebdev 2013-03-14 15:41:44

相關問題