20

假设如果我的 HTML 页面中有多个表(没有它们的 'id' 属性),那么如何使用 jQuery 选择器选择第一个表的第一行或任何特定表?

4

6 回答 6

33
$("table:first > tr:first")

或者

$("table:first").find("tr:first")

或者

$("table:first").children("tr:first")

或者

$("table").eq(0).children("tr").eq(0)

所以,如果我理解后续问题......

$("table:eq(1) tr:has(table:eq(2))")

转换为:如果 tr 有第三张表,则在第二张表中获取任何 tr

或者

$("table").eq(1).children("tr:has(table:eq(2))")
于 2009-05-08T08:55:28.097 回答
5

Something you can use to select the nth row in the nth table:

$("table:eq(n) tr:eq(n)")

with n being the zero based index of the table or tr.

Example:

$("table:eq(2) tr:eq(4)")

gets the 5th row of the 3rd table.

于 2009-05-08T10:30:06.140 回答
2

@svinto 的回答绝对是完成此任务的最短、最快和最简单的方法。如果您真的关心性能(例如,在任意复杂的 for循环中选择),这很可能会更快一点:

$('tr').eq(0)

如果你不需要使用jQuery 选择器并且实际上需要 DOM<TR>元素,你可以使用:

$('table')[0].rows[0]

或者:

$('tr')[0]
于 2010-01-21T10:27:30.300 回答
1

使用 jQuery 的eq()方法,您可以指定要获取的元素的索引。
这将选择在 DOM 中找到的第二个表的第一行

$('table:eq(1) tr:first')
于 2009-05-08T09:59:58.583 回答
0
$("tr:first");
于 2009-05-08T10:12:14.933 回答
0

虽然不是 jQuery 特定的,但我在这个w3c 选择器页面上被介绍了 dom 选择器。它非常详细,但充满了复杂的例子。

于 2009-05-08T09:50:18.043 回答