将变量传递给jquery eq()

时间:2016-12-31 00:38:19

标签: javascript jquery var

我一直试图找出为什么我不能将一个名为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时,它会清楚地打印一个递增的整数。我很困惑,为什么它不起作用。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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

相关问题