我需要使用变量作为表选择器来获取表中的行数。我得到了这个表:
var table_element = $(this).prev('table.w2bw2c-with-artists-table');
我从之前的帖子尝试了这个,但得到了一个错误,长度未定义。
var new_with_artist_index = $(table_element).rows.length;
我见过这些方法用于查找表中的行数:
var rowCount = $("#tblEmployee td").closest("tr").length;
var rowCount = $('#myTable tbody tr').length;
如何使用表选择器是变量而不是ID的方法之一?或者,还有更好的方法?
你可以在jQuery对象上使用.find()
方法。
var rowCount = table_element.find('tbody tr').length;
或者,您可以使用[]
或.get()
获取本机表,然后使用.rows
属性
var rowCount = table_element[0].rows.length;
var row = $(“#tblEmployee td”)。find(“tr”); var rowCount = row.length;
许多方法可以做到这一点:
$(tableElement).find('tr').length
$('tr', tableElement).length
tableElement.querySelectorAll('tr').length
如你所见,最短的将是第二个变体,我认为它也非常清楚,所以如果你可以利用jQuery,那就去做那个变种吧。如果您的库中没有jQuery,那么您应该使用第三个变体。
querySelectorAll是为所有DOM元素定义的,并返回一个NodeList。还有一个querySelector函数,它将返回选择器的第一个匹配(所以单个元素,如果没有匹配,则返回null)。
NodeList不扩展Array,所以如果你想迭代列表,你需要这样做:
[].forEach.call(tableElement.querySelectorAll('tr'), function(element) {
doSomething();
});
我找到了Ricky G的答案
jQuery: count number of rows in a table
这是我的代码:
//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 table_element = $(this).prev('table.w2bw2c-with-artists-table');
var new_with_artist_index = $(table_element).rowCount();
谢谢,给Ricky G一顶帽子!