यहां और शेष वेब पर पाए गए विभिन्न समाधानों का परीक्षण करने के बाद, मैं इसे "सरल" तरीका (या इसे बिल्कुल काम करने के लिए) तर्क का पता नहीं लगा सकता।मैं jQuery और CSS का उपयोग करके एकाधिक मान वाले एक सूची को फ़िल्टर कैसे कर सकता हूं?
मैं निम्नलिखित सूची है:
<ul class="store-list">
<li data-categories="Bags Shoes Accessories Belts">
<h3 itemprop="name">Enzo Poli</h3>
</li>
<li data-categories="Womenswear Shoes">
<h3 itemprop="name">Ilse Jacobsen</h3>
</li>
<li data-categories="Menswear Womenswear Shoes Ties">
<h3 itemprop="name">Kiman (Shoes Ties)</h3>
</li>
<li data-categories="Menswear Womenswear Shoes Knitwear">
<h3 itemprop="name">Riccovero</h3>
</li>
</ul>
<button class="a">Ties</button>
<button class="b">Ties & Shoes</button>
<button class="c">Menswear</button>
मैं Attribute Not Equal Selector उपयोग करने की कोशिश की है, लेकिन यह निश्चित रूप से काम नहीं करता।
var stores = $('.store-list');
$('button.b').on('click', function(){
stores.find('li[data-categories!="Ties"][data-categories!="Shoes"]').fadeOut();
});
एक और समस्या यह है कि जब मैं एक अलग श्रेणियों का चयन करता हूं, तो छुपा तत्व नहीं दिखाए जाते हैं।
मुझे पता है कि मैं $.each()
का उपयोग कर सकता हूं और प्रत्येक तत्व के माध्यम से जा सकता हूं और यह देखने के लिए बहुत सारे कोड का उपयोग कर सकता हूं कि इसमें श्रेणी है या नहीं, यह जांचें या नहीं। लेकिन मैं बस उम्मीद कर रहा था कि एक बेहतर और सरल विकल्प होगा।
तो क्यू है; मैं किस फ़िल्टर का चयन करता हूं, इस आधार पर मैं सूची आइटम कैसे दिखा/छुपा सकता हूं?
See my fiddle here।
'button' के एक क्लिक पर केवल एक ही' li' तत्व को प्रदर्शित करने परिणाम की उम्मीद है? – guest271314
सं।मेरे पास लगभग 13 श्रेणियां हैं I यदि मैं 3 श्रेणियों का चयन करता हूं, तो उन श्रेणियों वाले सभी आइटम दिखाए जाएंगे। बाकी सब कुछ छुपाया जाना चाहिए। – Steven
'.filter()' का उपयोग करने का प्रयास करें; हालांकि 'बटन' '.innerHTML' – guest271314