给定一个多行,多列的表,我如何选择相同列中的所有单元格作为任何任意单元格(例如单击的单元格)。
类似:
$("td").click(function(){
var columnNo = $(this).columnNo?
$(this).closest("table").find("tr td:eq("+columnNo+")").css("color", "red");
});
我需要在不单独命名列的情况下这样做。例如,它应该工作在简单的通用table
标记没有额外的类或id .
您的尝试是正确的,您需要做的就是使用.index
来查找列号- <td>
在行中的索引。您还需要使用n -child选择器来匹配其他<td>
元素的列索引。
$("td").click(function(){
var columnNo = $(this).index();
$(this).closest("table")
.find("tr td:nth-child(" + (columnNo+1) + ")")
.css("color", "red");
});
这可以使用jQuery的eq
方法来完成。
var $tds = $("td"); // get all tds beforehand, so jquery doesn't
// need to hit the DOM every click
$("td").on("click", function () {
var position = $(this).index(),
$tdsInColumn = $tds.filter(":nth-child(" + index + ")");
// manipulate $tdsInColumn in any way
$tdsInColumn.addClass("selected");
});
不确定这是否是最有效的方法,但这是我前阵子遇到同样问题时想到的解决方案。
<标题>引用jQuery.eq
标题>