使用nextUntil查找当前单元格的索引

Using nextUntil to find index of current cell

本文关键字:单元格 索引 nextUntil 查找 使用      更新时间:2023-09-26

这是我试图从

中学到的问题

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

在使用index和n -child的任何答案被提出之前,我正在考虑计算$(this) cell之前的单元数-例如

var columnNo = parentRow.nextUntil($(this),"td").length;
console.log(columnNo); // gives 0 - what am I missing?
parentTable.find("tr td:nth-child(" + (columnNo+1) + ")")
http://jsfiddle.net/mplungjan/JUt4F/

问题:

  1. 为什么nextUntil不给出前面单元格的长度?

2。为什么点击只工作一次?

请注意,我知道(在问这个之前)我可以使用索引。我只是想修复我的脚本来探索nextUntil

UPDATE:我似乎把nextAll和nextUntil混在一起,可能想象了某种nextAllUntil

nextUntil()方法将在父行中找到第一个td标记。使用该逻辑,您将只选择每行中的第一个单元格。每次点击都在工作——你只是把同一列一遍又一遍地涂成红色。

您需要做的是搜索父行上的所有td标签,并使用jQuery的index()方法来确定单击单元格在该行中的位置。

一个非常小的调整将解决这个问题:

$("td").on("click",function(){
    var parentTable = $(this).closest("table");
    var parentRow = $(this).parent();
    console.log(parentRow);
    var columnNo = parentRow.find('td').index($(this));
    console.log(columnNo);
    parentTable.find("tr td:nth-child(" + (columnNo+1) + ")")
        .css("color", "red");
});​

工作示例:http://jsfiddle.net/JUt4F/15/