2012-11-12 85 views
2

我有一個網頁,其中元素顯示,並有側面過濾選項。用戶可以篩選多個類別。JQuery選擇器:(class1或class2)AND(class3或class4) - 如何編寫這個選擇器?

這有點像Amazon.com,在這裏您可以通過價格或品牌篩選搜索結果等

所以,如果我的用戶同時檢查$ 10- $ 25和$ 25 - $ 50而不是$ 50 - $ 100或任何其他價格範圍,則選擇器應返回匹配$ 10- $ 25或$ 25- $ 50的商品,但不應退回其他任何價格範圍內的商品。另外,如果用戶檢查「藍色」和「紅色」,但不檢查任何其他顏色,則選擇器應返回藍色或紅色的物品,但應保留價格範圍內的原始選擇。

所有這些選項都給出班,所以我希望有一個選擇,看起來像:

(.tenToTwentyfive OR .twentyfiveFift) AND (.Blue OR .Red)

這可能嗎?謝謝。

+1

我不完全確定你的問題,但是像這樣的東西應該可以工作:'$(「。tenToTwentyfive,.twentyfiveFift,.Blue,.Red」)' –

+0

總是有上下文,'' $('。blue,.red','.tenToTwentyfive,.twentyfiveFift')' – adeneo

+0

@KevinB:不會選擇一個藍/紅的物品,不管它的價格如何,因此不能滿足過濾器? –

回答

5

您可以使用filter

$('.tenToTwentyfive, .twentyfiveFift').filter('.Blue, .Red'); 

如果你真的需要有一個選擇(這意味着你使用的是設計不好的插件,我的意見)的一切,你可以使用

'.tenToTwentyfive.Blue, .tenToTwentyfive.Red, .twentyfiveFift.Blue, .twentyfiveFift.Red' 
+0

這太好了。然而,我寫我的代碼的方式,我希望能夠一次構建選擇器字符串。我正在與Isotope一起工作,並期望能夠給出一個完整的JQuery Selector作爲參數。你可以在這個鏈接中看到我的意思:http://isotope.metafizzy.co/docs/filtering.html(關於「jQuery腳本」部分的下2個部分)。我需要調用一個方法,如下所示:'$ container.isotope({filter:filter_string});' – jononomo

+1

@JonCrowell請參閱此案例的編輯 –

+0

感謝您的有益更新re:在一個選擇器中的所有內容。我不確定這個插件設計得不好,或者我對這個插件的工作原理還不夠深入。現在,這是我對如何讓它做我想做的事情的理解。再次,非常感謝。 – jononomo

2

使用.filter()

$('.tenToTwentyfive , .twentyfiveFift').filter('.Blue , .Red') 

這將選擇所有的ELE與.tenToTwentyfive OR .twentyfiveFift

.filter()將只選擇之前選定元素中具有.Blue OR .Red的元素。

+0

想知道嗎?什麼可能是超快速Downvotes的原因;) –

+0

我想知道你喜歡但爲什麼「超級快」? –

+0

就我個人而言,我正在投票... – jononomo