2010-05-28 15 views
49

मुझे यह html मिला है:दृश्य तालिका पंक्तियों की संख्या गिनने के लिए jquery चयनकर्ता?

<table> 
    <tr style="display:table-row"><td>blah</td></tr> 
    <tr style="display:none"><td>blah</td></tr> 
    <tr style="display:none"><td>blah</td></tr> 
    <tr style="display:table-row"><td>blah</td></tr> 
    <tr style="display:table-row"><td>blah</td></tr> 
</table> 

मुझे पंक्तियों की संख्या गिनने की आवश्यकता है जो display:none नहीं है। मैं उसे कैसे कर सकता हूँ?

उत्तर

118

आप :visible selector और .length इस तरह उपयोग कर सकते हैं सीधे छिपा हुआ), तो इस तरह .filter() उपयोग करते हैं,:

var numOfVisibleRows = $('tr').filter(function() { 
    return $(this).css('display') !== 'none'; 
}).length; 
+2

और यदि आप केवल टेबल-बॉडी में दृश्य पंक्तियों को शामिल करना चाहते हैं तो $ ('tr: visible') का उपयोग करें। लंबाई - $ ('thead> tr')। –

11

$('tr:visible').length

+0

धन्यवाद आदमी! मैंने –

3

$ ("टीआर: दिखाई") आप दृश्य पंक्तियां के परिणाम हो जाता है, और मुझे लगता है कि आप तो .length कर सकते हैं

+3

काम किया है यह सुनिश्चित नहीं है कि यह क्यों ऊपर उठाया गया है, '.is (": दृश्यमान")' ** बूलियन ** देता है **, आप '.is()' की बजाय आपको 'लम्बाई' नहीं कह सकते हैं। उसे फ़िल्टर() '। –

+0

धन्यवाद, गलत कथन लिखा ... –

5

तुम भी विशेष रूप से तालिका दृश्य पंक्तियां देख सकते हैं

var totalRow = $('#tableID tr:visible').length; 
var totalRowWithoutHeader = totalRow-1; 

totalRowWithoutHeader हेडर पंक्ति को छोड़कर कुल पंक्ति गणना देता है।

+2

शीर्षलेख पंक्तियों की संख्या को हार्ड-कोड न करने के लिए बेहतर है और इसके बजाय $ ('thead> tr') का उपयोग करें। –

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