2011-03-16 13 views
5

मैं तालिका में पंक्तियों को दिखाने और छिपाने के लिए show() और hide() का उपयोग करता हूं।jQuery: तत्वों की संख्या को कैसे गिनना है जो "प्रदर्शन" नहीं है "कोई नहीं"?

मैं गैर-छिपी हुई पंक्तियों की संख्या कैसे गिन सकता हूं (अधिक सटीक रूप से, display के साथ पंक्तियां! = none)?

ध्यान दें कि:

$('tr:visible').length 

क्योंकि काम नहीं करेगा अगर मेज ही display=none है, परिणाम हमेशा रहेंगे 0.

उत्तर

9

अपनी पंक्तियों को फ़िल्टर उनकी वास्तविक सीएसएस संपत्ति के आधार पर:

$('tr').filter(function() { 
    return $(this).css('display') !== 'none'; 
}).length; 
9

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

$('tr:not([style*="display: none"])').length 

उदाहरण http://jsfiddle.net/infernalbadger/7LvD5/

+0

ज्यादातर मामलों में काम करना चाहिए, लेकिन टूट सकता है, क्योंकि यह सिर्फ सबस्ट्रिंग मिलान की है, और सटीक समानता परीक्षण नहीं। – Alnitak

+0

सच है, लेकिन उसने कहा कि वह छुपा() का उपयोग कर रहा था और यह उसके साथ काम करता है। –

+0

हां, लेकिन क्या होता है यदि कुछ अन्य संपत्ति 'foo-display: none' सेट नहीं है? आपका सबस्ट्रिंग मैच (गलत तरीके से) इसका पता लगाएगा। – Alnitak

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