2011-09-20 14 views
10

है मैं छिपाने के लिए और प्रत्येक प्रश्न के नीचे सामग्री दिखाने के लिए विकल्प के साथ एक FAQ पृष्ठ का निर्माण किया। मेरे पास "सभी का विस्तार करें" कार्यक्षमता है जो उपयोगकर्ता को सभी प्रश्नों को क्लिक करने देता है। जब कोई प्रश्न विस्तारित होता है तो इसे "चयनित" श्रेणी प्राप्त होती है।जांच करें कि सभी आइटम एक ही कक्षा

मैं बदलने के लिए कोशिश कर रहा हूँ स्थिति "सभी का विस्तार करें" जब सभी प्रश्नों (एलआईएस) का विस्तार कर रहे हैं।

मैं कैसे जांच कर सकते हैं कि LI कक्षा एक ही समय में "चयनित" सभी?

मैं प्रत्येक विधि का उपयोग फूल और उनके वर्ग के लिए।

अग्रिम धन्यवाद

+0

के साथ इस कोशिश कर सकते मुझे यकीन है कि मैं तुम क्या कह रहे हैं नहीं कर रहा हूँ; क्या आप सिर्फ उन सूची आइटमों का चयन नहीं कर सकते हैं जिनमें कक्षा 'चयनित' है? हालांकि मुझे यकीन नहीं है कि आप ऐसा करना चाहते हैं - ऐसा लगता है कि विस्तारित किया गया केवल एक सूची तत्व को संभालना बेहतर होगा। –

उत्तर

25

आप शायद सभी सूची आइटम के खिलाफ selected वर्ग के साथ सूची आइटम भरोसा कर सकते हैं:

if ($("#questions li.selected").length == $("#questions li").length) { 
    // all list items are selected 
} 

#questions तत्व यह है कि अपनी सूची और निश्चित रूप से उस में अलग हो सकता है शामिल है आपके कोड, लेकिन आपको विचार मिलना चाहिए।

+0

बहुत अच्छा विचार - मैं इसे आज़माता हूं! धन्यवाद! – John

+0

यह ठीक काम करता है - टिप के लिए धन्यवाद !! – John

7

सभी सूची आइटम का चयन करें, एक निश्चित वर्ग से संबंधित आइटमों को फ़िल्टर और फिर यह निर्धारित किया जाए या नहीं वहाँ किसी भी अधिक छोड़ दिया जाता है:

if($("li").not(".className").length > 0) { 
    //code 
} 
0

मैं इस समस्या लेकिन जांच करता है, तो एक को समझने के लिए यकीन नहीं है jQuery ऑब्जेक्ट में एक कक्षा है, आप .hasClass() का उपयोग करते हैं।

3

आप li तत्वों की संख्या li तत्वों की तुलना में "चयनित" श्रेणी के साथ तुलना कर सकते हैं। उन संख्याओं को एक ही कर रहे हैं, तो सभी li तत्वों कि वर्ग है:

if($("li").length == $("li.selected").length) { 
    //All li elements have class selected 
} 

आप किसी भी समय ऐसा कर सकते हैं, यह एक each पाश अंदर जाने के लिए नहीं है।

+0

Xion के अनुसार - टिप के लिए धन्यवाद! – John

0

जब मैं understnad आप सही, आप अपने ली के सभी तत्वों के लिए कक्षा selected सेट करना चाहते हैं जब एक ShowAll बटन पर क्लिक?

आप अपने आप को सब li तत्वों से अधिक पुनरावृति की जरूरत नहीं है।

बस उन्हें चुनकर उन पर addClass फोन:

$('li').addClass('selected'); 
8
$("li:not(.selected)").length 

आप <li> कि 'चुना' वर्ग की जरूरत नहीं है की संख्या देना चाहेंगे। यदि यह आंकड़ा शून्य था तो आप अपना तर्क चला सकते थे।

2

या आप size()

if($("li.success").size() == $("li").size()){ 
    //return true 
} 
संबंधित मुद्दे