如何使用 jQuery 选择表格列

问题描述 投票:0回答:5

我想选择一个表格列,我只知道该列的标题文本。 (th.innerText)

我尝试了以下代码,但它不起作用:

ownerIndex = $('th:contains("Owner")').index();
$('table tr td:nth-child(ownerIndex)')

有什么想法吗?

jquery html-table jquery-selectors
5个回答
67
投票

好的。我找到了解决方案:

$('table tr td:nth-child('+ownerIndex+')')

27
投票

在上面的示例中,ownerIndex 需要增加 1 以匹配第 n 个子节点的索引,该索引从 1 而不是 0 开始。

这是我的看法: http://jsfiddle.net/2xU8t/

/* Set all the cells in columns with THEHEADING in the heading to red */

// Find the heading with the text THEHEADING
columnTh = $("table th:contains('THEHEADING')");

// Get the index & increment by 1 to match nth-child indexing
columnIndex = columnTh.index() + 1; 

// Set all the elements with that index in a tr red
$('table tr td:nth-child(' + columnIndex + ')').css("color", "#F00");

// Set the heading red too!
columnTh.css("color", "#F00"); 

3
投票

这似乎可以使用反勾号而不是单引号:

$(`table tr td:nth-child(${ownerIndex})`)

0
投票

上面的例子对我不起作用,因为我的单元没有相同的 cosplan,我找到了这个解决方案:

 $("table tr>td:nth-child(${ownerIndex})");

0
投票

我在我的上尝试了 $("table tbody tr td:eq(4)") 只得到一个结果..

奇怪的是,先找到 TR,然后找到 td:eq(col) 工作正常..

$("table tbody tr").find("td:eq(4)")
© www.soinside.com 2019 - 2024. All rights reserved.