我试图通过递增或递减 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 不计算负模。也许这也会对另一个程序员有所帮助。
你可以试试这个:p-
Number.prototype.mod = function(n) {
return ((this % n) + n) % n;
}
查看this http://javascript.about.com/od/problemsolving/a/modulobug.htm
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)