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