tôi phải lọc một danh sách các mục, có chứa hai dữ liệu quan trọng thuộc tính:Trộn logic AND và OR trong jQuery selector
<li class="song" data-title="freedom" data-id="7" data-tags="tag-18-eot,tag-2-eot" data-category="1">Freedom</li>
- Thể loại
- Thẻ
Lọc theo thể loại phải theo logic HOẶC nhưng lọc theo thẻ phải theo logic AND.
Lọc bằng một trong hai cách này không phải là vấn đề.
tôi áp dụng, ví dụ:
$(collection).filter('li[data-tags*="tag-50-eot"][data-tags*="tag-51-eot"]');
để lọc theo các thẻ. Hoặc:
$(collection).filter('[data-category="1"], [data-category="2"]);
để lọc theo danh mục.
Điều này hoạt động tốt. Tuy nhiên, tôi không thể tìm cách kết hợp hai bộ chọn này thành một truy vấn duy nhất mà tôi có thể chuyển đến hàm filter()
và chuỗi hai cuộc gọi filter()
không dẫn đến kết quả mong muốn, bởi vì cuộc gọi đầu tiên có thể lọc ra các mục mà thứ hai cuộc gọi sẽ bỏ lại phía sau.
Tôi đã tìm thấy this question với một chủ đề tương tự, nhưng vấn đề là hơi khác và cách tiếp cận là tốt.
Làm cách nào để lọc các mục đó một cách chính xác?
Các bạn đã cố gắng đơn giản chaining với AND đầu tiên? –
_chứa hai cuộc gọi filter() không dẫn đến kết quả mong muốn, bởi vì cuộc gọi đầu tiên có thể lọc ra các mục mà cuộc gọi thứ hai sẽ để lại phía sau._ Điều gì khiến bạn nghĩ vậy? – hindmost
Không chắc chắn kết quả mong đợi là gì? Trả về tất cả các phần tử có thuộc tính 'data-tags' và' data-category' được đặt? – guest271314