【发布时间】:2013-09-04 15:37:42
【问题描述】:
我正在尝试通过递增或递减 1 来迭代 jQuery 对象数组。因此,对于递减部分,我使用以下代码:
var splitted_id = currentDiv.attr('id').split('_');
var indexOfDivToGo = parseInt(splitted_id[1]);
indexOfDivToGo = (indexOfDivToGo-1) % allDivs.length;
var divToGo = allDivs[indexOfDivToGo];
所以我有 4 个带有 id 的元素:
div_0
div_1
div_2
div_3
我期待它迭代为 3 - 2 - 1 - 0 - 3 - 2 - 等等。
但它在零之后返回 -1,因此它被卡住了。所以它迭代为:
3 - 2 - 1 - 0 - -1 - 卡住
我知道我可以通过将代码的第二行更改为来修复它
indexOfDivToGo = (indexOfDivToGo-1 + allDivs.length) % allDivs.length;
但我想知道为什么 JavaScript 不计算负模式。也许这也会帮助其他程序员。
【问题讨论】:
-
有几种负面的mod解决方案。 stackoverflow.com/questions/1082917/…
-
您应该考虑将您接受的答案更改为底部的答案,因为该答案为您提供了所提问题的实际解决方案。
标签: javascript jquery math modulo negative-number