2016-12-31 2 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

'for'ループが完了するまで' timepos'がインクリメントされないと予想される結果ですか?どの要素を 'td:eq( '+ timepos +')' 'で選択しようとしていますか? – guest271314

答えて

0

私はこの問題を理解したため、投稿したコードとはまったく関係ありませんでした。混乱させて申し訳ありません。私はそれが完全にコードを投稿するのに役立つだろうと思うが、それらの変数は他の関数に結びついていて、いくつかのgridviewに影響を与えていたので、コード全体は約200行でした。

レコードの場合、timepos変数はforループの外側にある必要があります。 count()関数は、ユーザーアクションの影響を受けるタイマーによってトリガーされます。カウント関数は1秒ごとに実行されるので、関数全体の外にあるtimeposが必要でした。それ以外の場合、timeposがcount()関数で宣言されていれば、毎秒リセットされます。

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++; 
};