jQuery: एक तालिका में पंक्तियों की संख्या गिनें


491

मैं jQuery का उपयोग करके एक तालिका के भीतर कितने त्रि तत्वों की संख्या को गिनता हूं?

मुझे पता है कि एक समान प्रश्न है , लेकिन मुझे कुल पंक्तियाँ चाहिए।

जवाबों:


955

एक चयनकर्ता का उपयोग करें जो सभी पंक्तियों का चयन करेगा और लंबाई लेगा।

var rowCount = $('#myTable tr').length;

नोट: यह दृष्टिकोण भी हर नेस्टेड तालिका के सभी trs गिनता है!


11
$ ('# myTable tr')। आकार () समान मान लौटाएगा।
गैरी शॉटलर

31
@ गैरी - डॉक्स संकेत करते हैं कि लंबाई आकार () से अधिक पसंद की जाती है क्योंकि यह तेज़ है।
तवान्फोसन

12
.Size () कॉल .length आंतरिक
redsquare

2
इसकी लंबाई संपत्ति है क्योंकि यह एक सरणी है। मैं jQuery के इतिहास के बारे में जानने के लिए पर्याप्त नहीं हूं कि क्या jQuery ऑब्जेक्ट ने हमेशा एक सरणी बढ़ाया है।
tvanfosson

67
यह थ्रेड में ट्र की गिनती भी करेगा ... $ ('# myTable tbody tr') लंबाई; केवल टेबल बॉडीज में गिने जाएंगे ..
डेव लॉरेंस

178

यदि आप <tbody>या <tfoot>अपनी तालिका में उपयोग करते हैं, तो आपको निम्नलिखित सिंटैक्स का उपयोग करना होगा या आपको एक गलत मान मिलेगा:

var rowCount = $('#myTable >tbody >tr').length;

1
मैं <tbody> का उपयोग कर रहा हूं, लेकिन मुझे एक ही मूल्य मिलता है
क्रेकर

1
$ का उपयोग करें ('# myTable> tbody: last> tr') लंबाई;
रिकार्डो बासीलीची

7
@DevlshOne यह सच नहीं है, लंबाई शून्य आधार नहीं है, दस्तावेज की जांच करें: api.jquery.com/length
माइक

1
जब आपके पास नेस्टेड टेबल होते हैं, तो यह केवल निर्दिष्ट तालिका में पंक्तियों की गणना करेगा, जो कि मुझे चाहिए।
गिल्सहिट

1
@ user12379095 कुछ इस तरह है: stackoverflow.com/questions/32101764/…
एंटोनचनिंग

49

वैकल्पिक रूप से ...

var rowCount = $('table#myTable tr:last').index() + 1;

jsField DEMO

यह सुनिश्चित करेगा कि किसी भी नेस्टेड टेबल-पंक्तियों को भी गिना न जाए।


ओह, क्योंकि तब सूचकांक रिटर्न -1। चतुर।
सैमुअल एडविन वार्ड

1
धन्यवाद। वे कम और दूर हैं, लेकिन चतुर समाधान अब और फिर से फिसल जाते हैं।
DevlshOne

var rowCount = $('table#myTable tr:last').index() + 1;
औआदी

<thead>पंक्तियों और नेस्टेड तालिका पंक्तियों को अनदेखा करता है । अच्छा लगा। jsfiddle.net/6v67a/1576
GreeKatrina

अगर लास्ट <td>में इनर टेबल है, तो यह उस टेबल की रो काउंट रिटर्न करता है !! jsfiddle.net/6v67a/1678
शौनक शुक्ल

32

खैर, मुझे तालिका से अटर पंक्तियाँ मिलती हैं और उस संग्रह की लंबाई मिलती है:

$("#myTable").attr('rows').length;

मुझे लगता है कि jQuery कम काम करता है।


2
+1 - उस परिदृश्य के लिए अच्छा है जहाँ आप पास किए गए तत्व हैं जिसमें एक तालिका होती है जैसे var rowCount = $ (element) .attr ('row') लंबाई।
निकोलस मरे

9
JQuery v1.9.0 का उपयोग करना और मुझे 'पंक्तियों' का उपयोग करने के लिए प्रोप () का उपयोग करना चाहिए: $ ("# myTable")। प्रोप ('पंक्तियों') की लंबाई; (क्रोमियम 24)
nvcnvn

16

यहाँ मेरा उस पर ले लो:

//Helper function that gets a count of all the rows <TR> in a table body <TBODY>
$.fn.rowCount = function() {
    return $('tr', $(this).find('tbody')).length;
};

उपयोग:

var rowCount = $('#productTypesTable').rowCount();

बहुत अच्छा समारोह @Ricky जी, कई चीजें उदाहरण करने के लिए उपयोगी इस समारोह के बजाय बैकएंड रूप में अच्छी तरह .. धन्यवाद डोम से उत्पन्न एचटीएमएल के लिए कहा जा सकता है
धवल डेव

12

मुझे निम्नलिखित मिला:

jQuery('#tableId').find('tr').index();

3
प्लस 1 पंक्तियों की संख्या प्राप्त करने के लिए
ओलिवियर

8

यह एक कोशिश है अगर वहाँ tbody है

हेडर के बिना

$("#myTable > tbody").children.length

अगर हेडर है तो

$("#myTable > tbody").children.length -1

का आनंद लें!!!


1
यह गायब है () चिडलेन के बाद => $ ("# myTable> tbody") बच्चे। ()
DrB

1
हेडर को संलग्न किया <thead>जाना चाहिए जिसमें पहले आना चाहिए <tbody>। तो -1 की जरूरत नहीं होनी चाहिए, अगर तालिका मानक के अनुसार ठीक से डिज़ाइन की गई है।
इलपेल

समस्या यह है कि जब डिटिटेबल का कोई रिकॉर्ड नहीं होता है तो यह लंबाई 1 के रूप में दिखाता है, क्योंकि डिटिटेबल डिटैजेबल में कक्षा "विषम" के साथ एक खाली पंक्ति को प्रस्तुत करता है .....
सैयद अली

मेरे पास एक यूजरस्क्रिप्ट पर डायनेमिक टेबल है और यह एकमात्र समाधान था जिसने काम किया
ब्रास्कोफिलो

7

मुझे AJAX रिटर्न में ऐसा करने का तरीका चाहिए, इसलिए मैंने यह टुकड़ा लिखा:

<p id="num_results">Number of results: <span></span></p>

<div id="results"></div>

<script type="text/javascript">
$(function(){
    ajax();
})

//Function that makes Ajax call out to receive search results
var ajax = function() {
    //Setup Ajax
    $.ajax({
        url: '/path/to/url', //URL to load
        type: 'GET', //Type of Ajax call
        dataType: 'html', //Type of data to be expected on return
        success: function(data) { //Function that manipulates the returned AJAX'ed data
            $('#results').html(data); //Load the data into a HTML holder
            var $el = $('#results'); //jQuery Object that is holding the results
            setTimeout(function(){ //Custom callback function to count the number of results
                callBack($el);
            });
        }
    });
}

//Custom Callback function to return the number of results
var callBack = function(el) {
    var length = $('tr', $(el)).not('tr:first').length; //Count all TR DOM elements, except the first row (which contains the header information)
    $('#num_results span').text(length); //Write the counted results to the DOM
}
</script>

जाहिर है कि यह एक त्वरित उदाहरण है, लेकिन यह मददगार हो सकता है।


6

मुझे यह वास्तव में अच्छी तरह से काम करने के लिए मिला यदि आप वें और बिना किसी पंक्तियों के तालिकाओं को गिनना चाहते हैं तालिकाओं के अंदर तालिकाओं से:

var rowCount = $("#tableData > tbody").children().length;

स्तंभों की गणना करने के लिए इसे कैसे संशोधित किया जाए?
ePandit


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.