使用jQuery查找给定表格中TR元素的数量

4

我看过一些关于如何查找子元素等的示例,但出于某种原因我无法正确地实现它... 希望 Stack Overflow 社区能帮忙。

以下是我目前的代码尝试--

var trCount = $("#table > tr").size();

(译注:该代码意为在 id 为 table 的元素下查找直接子元素 tr 的数量,并将结果赋值给 trCount 变量。)

6个回答

12

这应该可以工作:

var count = $("#table tr").length;

4

普通的DOM:

document.getElementById('table').rows.length;

使用原生JavaScript查询表格行元素,比让jQuery去计算选择器并返回每个行元素要更加高效。

你不必把所有操作都强制塞进一个jQuery的形状中;有时旧方法仍然是最好的。jQuery是为了在JavaScript薄弱的领域进行补充而创建的,而不是完全取代整个语言。

$("#table tr").size();

对于嵌套表格会失败。

$("#table > tr").size();

对于tbody中的tr会失败(这种情况非常普遍,因为它们可以自动插入)。

$("#table > tbody > tr").size();

对于thead/tfoot中的tr也会失败。


2

尝试:

var trCount = $("table tr").size();

如果您使用tbody、thead等元素,使用 > 可能无法起作用。

此外,# 将选择一个具有id为table的任何元素。请确保这是您想要的。


2
浏览器会自动向DOM中添加tbody元素。
var trCount = $("#table > tbody > tr").size();

"table tr"这样的答案对于嵌套表格是不正确的。


2
没有后代选择器对我有用,但不是使用后代选择器。
正确:
var trCount = $("table tr").size();

不支持:

var trCount = $("table > tr").size();

同时确保将声明放在docready内部,否则它将无法工作。

$(document).ready(function() {
     var trCount = $("table tr").size();
});

1

它应该可以工作,但我相信你想要的是:

var trCount = $("table > tr").size();

如果您使用 #table,那么您正在请求一个带有 id='table' 的表格,我猜这是一个错误?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接