jQuery选择器,用于抓取同一列中的单元格



给定一个多行,多列的表,我如何选择相同中的所有单元格作为任何任意单元格(例如单击的单元格)。

类似:

$("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

最新更新