2011-01-11 16 views
11

के साथ दृश्य divs गिनती मुझे कक्षा नाम के साथ दृश्यमान का उपयोग कर परेशानी हो रही है।वर्ग नाम jquery

पूर्व:

<div class="groupedDiv" id="group1"> 
    <div class="level1"> 
     Apples 
     <div class="level2"> || L2-apple </div> 
    </div> 

    <div class="level1" style="display:none;"> 
     Oranges 
     <div class="level2"> || [L2-orange] </div> 
    </div> 
</div> 

<br/> 

<div class="groupedDiv" id="group1"> 
    <div class="level1"> 
     Roses 
     <div class="level2"> || L2-rose </div> 
     <div class="level3"> l3 rose </div> 
    </div> 
</div> 

मैं कक्षा "level1"

$(".level1 :visible").length; मुझे उत्पादन 3, यह does not देता है के दृश्य divs उत्पादन 2 की अपेक्षा की # गिनती करने के लिए चाहते हैं?

$(".level1 :visible").parent().length; मुझे उत्पादन 2 जो सही

है मैं http://jsfiddle.net/metalhawk/P87jS/

पर इस उदाहरण बनाया है कोई सुझाव सहायक होते हैं देता है। धन्यवाद

उत्तर

34

$(".level1 :visible") एक वंशज चयनकर्ता है: आप .level1 के वंशज हैं जो सभी दृश्य तत्वों का चयन कर रहे हैं। तत्व हैं जो .level1 तत्वों के नीचे दिखाई दे रहे हैं।

उपयोग इस बजाय:

$(".level1:visible").length; 

See your fiddle per my update

+0

@lonesomeday, इस के लिए किसी भी तरह से अद्यतन करने के लिए divs छिपाने जबकि पृष्ठ पर/शो करने के लिए अंतरिक्ष कोड टूट रहा है की जरूरत है? लाइव की तरह? यह पेज लोड पर बहुत अच्छा काम करता है लेकिन एक प्रकार/खोज के लिए जहां divs को हटाया जाता है, इस बदलाव को पाने का कोई तरीका? – Collarbone

+0

@ जैमिसनहिल जब भी आप इसे चलाते हैं, तो यह वर्तमान संख्या देगा। प्रत्येक बदलाव के बाद आपको चयनकर्ता को फिर से चलाने की आवश्यकता होगी। ऐसा करने के लिए और अधिक शानदार तरीके हो सकते हैं, लेकिन आपके कोड पर गहराई से देखे बिना कहना मुश्किल है। – lonesomeday

+0

@lonesomeday - यहां मेरे कोड के साथ एक jFiddle है। बहुत सरल लेकिन खोज के साथ अपडेट नहीं हो रहा है: http://jsfiddle.net/KYjfk/10/ मुझे बताएं कि आप क्या सोचते हैं। – Collarbone

4

सुंदर वाकई $(".level1:visible").length;

+0

आह ... धन्यवाद dpmguise। – metalhawk

संबंधित मुद्दे