将变量传递给 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,它将每秒重置一次。
我一直在试图弄清楚为什么我不能将一个名为 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,它将每秒重置一次。