2011-12-07 24 views
5

Chúng tôi đang làm việc trên một hệ thống lọc, nơi bạn có thể nhóm các tùy chọn, ví dụ:Bạn có thể nhóm các bộ chọn jQuery với logic nâng cao (hơi hơn) không?

Màu Red, Blue, Green

Khoảng Giá £ 0- £ 5, £ 6- 10 £, £ 11 +

Hãy Adidas, Nike, Converse

Mỗi tùy chọn là một một hộp kiểm. Chúng tôi lọc với logic sau:

  • HOẶC tùy chọn từ một nhóm
  • tham gia những người có một VÀ

Vì vậy, nếu tôi là để kiểm tra Đỏ, Xanh, £ 0- £ 5, Nike và Converse, logic sẽ là:

(màu đỏ hoặc xanh) AND (£ 0-5) AND (Nike HOẶC Converse)

Mỗi hộp có một ID. Tôi muốn xây dựng một bộ chọn bằng cách sử dụng logic ở trên, nhưng tôi không chắc chắn về cách tốt nhất để làm điều đó trong jQuery. Rõ ràng AND chỉ là bổ túc và ORS (hoặc tương đương) sử dụng lệnh trong những selectors, nhưng điều đó sẽ phá vỡ logic mà không một cách nào đó của nhóm, tức là .:

$('(#red,#blue)(#price0to5)(#nike,#converse)')

Mọi góp ý hoặc lựa chọn thay thế?

+1

có thể trùng lặp của [Compound JQuery Selectors] (http://stackoverflow.com/questions/8071351/compound-jquery-selectors). –

Trả lời

8

Giả sử bạn có một loạt các mục có bản sắc lớp áp dụng:

<div class="red nike underfive"></div> 
<div class="blue green converse elevenup"></div> 
<div class="blue converse underfive"></div> 

ORS tương đương với dấu phẩy, trong khi AND đòi hỏi chaining:

$(".red,.blue").filter(".underfive").filter(".nike,.converse"); // 1 and 3 
$(".green").filter(".underfive"); // empty 
$(".blue").filter(".green"); // 2 
+0

Đẹp một - cảm ơn :) – LeonardChallis

Các vấn đề liên quan