2016-12-31 127 views
0

我一直在試圖弄清楚爲什麼我無法將一個名爲timepos的變量傳遞給jquery中的td:eq(),而我嘗試的東西似乎無法工作。將變量傳遞給jquery 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

我認爲它應該工作,你可以添加HTML和'time_chunks'變量,並將其作爲演示問題的可執行代碼片段嗎? – Barmar

+0

'timepos'的預期結果只有在for循環完成後纔會增加?你想在'td:eq('+ timepos +')''選擇哪個元素? – guest271314

回答

0

所以我想出了這個問題,它與我發佈的代碼完全無關。對困惑感到抱歉。我想這會幫助完整地發佈代碼,但這些變量與其他函數綁定在一起,並且影響了幾個GridView,因此整個代碼大約有200行。

只是爲了記錄timepos變量確實需要在for循環之外。 count()函數由受用戶操作影響的定時器觸發。由於計數函數每秒運行一次,因此我需要timepos在整個函數之外。否則,如果在count()函數中聲明瞭timepos,它將每秒重置一次。

1

您正在嘗試在for循環之外增加timepos循環。這意味着timepos將始終爲零。

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