将变量传递给 jquery eq()

Passing variable to jquery eq()

我一直在试图弄清楚为什么我不能将一个名为 timepos 的变量传递给 jquery 中的 td:eq() 而我尝试的任何方法似乎都不起作用。

以下是代码的相关部分:

var timepos = 0;
function count() {

     var secs;

     secs = Number(time_chunks[2]);
     secs++;

     if ((secs == 00) || (secs % 5 == 0)) {
         for (i = 0; i < 6; i++) {
             $('.gridclassscrolled tbody tr:eq(' + i + ') td:eq(' + timepos + ')').find('.txttime').css("background-color", "yellow");
         };
         timepos = timepos + 1;
     };
}

它不起作用。如果我用整数替换 td:eq(' + timepos + ') 它可以工作,但不会像我需要的那样递增。我也尝试过使用 parseInt。当我提醒变量 timepos 时,它清楚地打印出一个递增的整数。我很困惑为什么它不起作用。

您正试图在 for 循环之外递增 timepos。这意味着 timepos 将始终为零。

for (i = 0; i < 6; i++) {
    $('.gridclassscrolled tbody tr:eq(' + i + ') td:eq(' + timepos + ')').find('.txttime').css("background-color", "yellow");
    timepos++;
};

所以我发现了问题,它与我 posted 的代码完全无关。对困惑感到抱歉。我想它会对 post 整个代码有所帮助,但这些变量与其他函数相关联并且它影响了几个网格视图,所以整个代码大约有 200 行。

仅作记录,timepos 变量确实需要在 for 循环之外。 count() 函数由受用户操作影响的计时器触发。由于 count 函数每秒运行一次,我需要 timepos 在整个函数之外。否则,如果在 count() 函数中声明了 timepos,它将每秒重置一次。