jQuery selector to grab cells in the same column

前端 未结 2 2065
难免孤独
难免孤独 2020-12-18 20:45

Given a multirow, multicolumn table, how can I select all cells in the same column as any arbitrary cell (e.g. a cell that is clicked on).

Something like:

相关标签:
2条回答
  • 2020-12-18 21:21

    Your attempt is right, all you need to do is use .index to find the column number—the index of the <td> within the row. You also need to use the nth-child-selector to match the column indices of the other <td> elements.

    $("td").click(function(){
        var columnNo = $(this).index();
        $(this).closest("table")
            .find("tr td:nth-child(" + (columnNo+1) + ")")
            .css("color", "red");
    });
    
    0 讨论(0)
  • 2020-12-18 21:21

    This can be done using the jQuery eq method.

    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");
    });
    

    Not sure if this is the most efficient way of doing so, but it is the solution I came up with when faced with the same problem a while back.

    Reference

    jQuery.eq

    0 讨论(0)
提交回复
热议问题