2012-11-21 9 views
5

jQuery का उपयोग करके, मैं प्रत्येक नेस्टेड ul.item के माध्यम से कैसे जाता हूं, LI की संख्या गिनता हूं, और उस पृष्ठ पर माता-पिता span.someClass में उस आकार/लंबाई को वापस कर देता हूं ?jquery - एकाधिक उल में से प्रत्येक में वापसी करें और वापसी मूल्य

<ul> 
    <li><span class="someClass">3</span> 
    <ul class="item" style="display:none"> 
     <li>count me</li> 
     <li>count me</li> 
     <li>count me</li> 
    </ul> 
    </li> 
    <li><span class="someClass">1</span> 
    <ul class="item" style="display:none"> 
     <li>count me</li> 
    </ul> 
    </li> 
    <li><span class="someClass">2</span> 
    <ul class="item" style="display:none"> 
     <li>count me</li> 
     <li>count me</li> 
    </ul> 
    </li> 
</ul> 
+3

हमें दिखाएं कौन-सा कोड अब तक की कोशिश की है। –

उत्तर

1
<html> 
<head> 
    <script type="text/javascript" src="jquery.js"></script> 
    <script type="text/javascript"> 
     $(function() { 
      var count = 0; 
      $('ul').each(function(){ 
       if(count != 0){ 

        var len = $(this).find('li').length; 

        $(this).parent().find('.someClass').html(len); 
       } 
       count++; 

      }) 
     }); 

    </script> 
</head> 
<body> 
<ul> 
    <li><span class="someClass"></span> 
    <ul class="item" style="display:none"> 
     <li>count me</li> 
     <li>count me</li> 
     <li>count me</li> 
    </ul> 
    </li> 
    <li><span class="someClass"></span> 
    <ul class="item" style="display:none"> 
     <li>count me</li> 
    </ul> 
    </li> 
    <li><span class="someClass"></span> 
    <ul class="item" style="display:none"> 
     <li>count me</li> 
     <li>count me</li> 
    </ul> 
    </li> 
</ul> 
</body> 
</html> 
3

इस प्रयास करें,

Live Demo

$('.someClass').each(function(){  
    $(this).text($(this).next('ul').find('li').length); 
})​ 
+0

एलआईएस स्पैन के अंदर यूएल के अंदर नहीं हैं। '$ (this) .next ('उल')। लगता है ('ली')। Length' –

5
$("ul.item").each(function() { 
    // reusabilty 
    var context = $(this); 
    // count and populate 
    context.prev(".someClass").text(context.children().length); 
}); 

prev() कॉल में न आना .someClass इन span तत्वों हमेशा तुरंत से पहले अपने ul तत्व हैं यदि। उस स्थिति में prev में फ़िल्टरिंग आवश्यक और अनिवार्य नहीं है।

$('.someClass').text(function(){ 
    return $(this).next().find('li').length 
}) 

http://jsfiddle.net/EEsRR/

1

आप text विधि का उपयोग कर सकते हैं?

+0

आह .. तुम मुझे यह करने के लिए हरा –

0
​$("ul.item").each(function() { 
    var _c = $(this); 
    _c.siblings("span.someClass").html(_c.children("li").length); 
});​ 
0

लूप jQuery के साथ हर <li> गर्त:

$(document).ready(function(){ 

    var howMany; 
    // loop through every span.someClass 
    $('.someClass').each(function(){ 
    // loop through every <li> within that span.someClass 
    $('li').each(function(){ 
     // .index() is the current index of the $(this) object, it starts at 0, therefore .index()+1 
     howMany = $(this).index()+1; 
    }); 
    // Write your counted <li> in your <span> with .text(), manipulate the text within the <span> tags 
    $(this).text(howMany); 
    }); 
}); 

यह काम किया

+0

नाह इस सिर्फ़ एक मान प्रदर्शित किया, धन्यवाद यद्यपि – dissident

-1
$('#yourelementid > li').length; 

यह किसी भी पाश उपयोग करने के बजाय आप के लिए काम करेंगे