17

1ずつインクリメントまたはデクリメントすることにより、jQueryオブジェクトの配列を反復しようとしています。したがって、デクリメント部分では、次のコードを使用します。

var splitted_id = currentDiv.attr('id').split('_');
var indexOfDivToGo = parseInt(splitted_id[1]);
indexOfDivToGo = (indexOfDivToGo-1) % allDivs.length;
var divToGo = allDivs[indexOfDivToGo];

だから私はIDを持つ4つの要素を持っています:

div_0
div_1
div_2
div_3

私はそれが 3 - 2 - 1 - 0 - 3 - 2 - などと繰り返されることを期待していました.

しかし、ゼロの後に -1 を返すため、スタックします。したがって、次のように繰り返されます。

3 - 2 - 1 - 0 - -1 - スタック

コードの2行目を次のように変更することで、おそらく修正できることはわかっています

indexOfDivToGo = (indexOfDivToGo-1 + allDivs.length) % allDivs.length;

しかし、JavaScript が負の mod を計算しないのはなぜだろうか。たぶん、これは別のコーダー仲間にも役立つでしょう。

4

2 に答える 2

30

これを試すことができます:p-

Number.prototype.mod = function(n) {
    return ((this % n) + n) % n;
}

これをチェックしてください

于 2013-09-04T15:43:35.350 に答える