jQuery选择器用于获取同一列中的单元格
给定一个多行多列表,如何选择同一列中的所有单元格与任意任意单元格(例如,单击的单元格)。
就像是:
$("td").click(function(){ var columnNo = $(this).columnNo? $(this).closest("table").find("tr td:eq("+columnNo+")").css("color", "red"); });
我需要在不单独命名列的情况下执行此操作。 例如,它应该适用于简单的通用table
标记而无需额外的类或ID。
您的尝试是正确的,您需要做的就是使用.index
来查找列号 – 行中
的索引。 您还需要使用nth-child-selector来匹配其他
元素的列索引。
$("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