如何使用 jQuery 选择表格列

Posted

技术标签:

【中文标题】如何使用 jQuery 选择表格列【英文标题】:How to select a table column with jQuery 【发布时间】:2012-01-12 14:54:55 【问题描述】:

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

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

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

有什么想法吗?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

如果每个单元格的 colspan=1,则此方法有效,但如果单元格的列跨度不同,则会中断。 谢谢,我已经添加到您的想法中,以便为“table-layout:fixed”样式设置列宽。在这种情况下,我从 colgroup 中选择孩子,例如。 $('#plGrid colgroup col:nth-child(0)').css('width', '150px'); $('#plGrid colgroup col:nth-child(1)').css('width', '250px'); 制作那个 nth-child(1); nth-child(2)【参考方案2】:

在上面的示例中,ownerIndex 需要增加 1 以匹配 nth-child 的索引,它从 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"); 

【讨论】:

这是唯一真正正确的答案。其他人,包括得票最多的人,错过了.index() 将返回一个从零开始的索引(即第一列的索引是 0),而:nth-child 接受一个从 1 开始的参数(即第一列将是:nth-child(1)【参考方案3】:

这似乎使用反引号而不是单引号起作用:

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

【讨论】:

【参考方案4】:

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

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

【讨论】:

以上是关于如何使用 jQuery 选择表格列的主要内容,如果未能解决你的问题,请参考以下文章

如何使用jquery根据文本突出显示表格列?

如何使用 jQuery 按名称选择元素?

如何使用 jQuery DataTables 插件在特定列中搜索?

如何使 html 表格列可调整大小?

如何使用jQuery选择相邻的表格单元格

jQuery - 如何使用选择器在表格中查找特定单元格?