Làm cách nào để tôi đếm số phần tử tr trong bảng bằng jQuery?
Tôi biết có một câu hỏi tương tự , nhưng tôi chỉ muốn tổng số hàng.
Làm cách nào để tôi đếm số phần tử tr trong bảng bằng jQuery?
Tôi biết có một câu hỏi tương tự , nhưng tôi chỉ muốn tổng số hàng.
Câu trả lời:
Sử dụng một bộ chọn sẽ chọn tất cả các hàng và lấy chiều dài.
var rowCount = $('#myTable tr').length;
Lưu ý: cách tiếp cận này cũng tính tất cả trs của mỗi bảng lồng nhau!
Nếu bạn sử dụng <tbody>
hoặc <tfoot>
trong bảng của mình, bạn sẽ phải sử dụng cú pháp sau hoặc bạn sẽ nhận được giá trị không chính xác:
var rowCount = $('#myTable >tbody >tr').length;
Hoặc ...
var rowCount = $('table#myTable tr:last').index() + 1;
Điều này sẽ đảm bảo rằng bất kỳ hàng bảng lồng nhau nào cũng không được tính.
var rowCount = $('table#myTable tr:last').index() + 1;
<thead>
các hàng và hàng bảng lồng nhau. Đẹp. jsfiddle.net/6v67a/1576
<td>
có bảng bên trong, nó sẽ trả về số hàng của bảng đó !! jsfiddle.net/6v67a/1678
Chà, tôi lấy các hàng attr từ bảng và lấy độ dài cho bộ sưu tập đó:
$("#myTable").attr('rows').length;
Tôi nghĩ rằng jQuery hoạt động ít hơn.
Đây là của tôi về nó:
//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;
};
SỬ DỤNG:
var rowCount = $('#productTypesTable').rowCount();
Tôi đã nhận được như sau:
jQuery('#tableId').find('tr').index();
Hãy thử cái này nếu có tbody
Không có tiêu đề
$("#myTable > tbody").children.length
Nếu có tiêu đề thì
$("#myTable > tbody").children.length -1
Thưởng thức!!!
<thead>
đó nên đến trước <tbody>
. Vì vậy, -1 không cần thiết, nếu bảng được thiết kế đúng theo tiêu chuẩn.
Tôi cần một cách để làm điều này trong lợi nhuận AJAX, vì vậy tôi đã viết đoạn này:
<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>
Rõ ràng đây là một ví dụ nhanh, nhưng nó có thể hữu ích.
var trLength = jQuery('#tablebodyID >tr').length;