大家好,我有一小段 jquery 代码,但遇到了问题。好像for循环跳过了第二个参数(当i = 2时),你能告诉我哪里出了问题吗?
这是代码:
var items = $(".item").length;
var currentIndex = items;
place(currentIndex);
function place(index){
var s1 = Math.floor(items / 2);
for (i = 1; i <= items; i++){
(function(i, index){
if (i <= s1){
var id = findNext(1, i);
console.log("i = " + i + " > id = " + id);
} else if ( i > s1){
console.log("i = " + i);
}
})(i, index);
}
}
function findNext(index, times){
var result = index;
for (i = 1; i <= times; i++){
if (result == items){
result = 1;
} else {
result ++;
}
}
return result;
}
控制台输出显示:
i = 1 > id = 2
i = 3
i = 4
看来for循环跳过了第二个参数(当i = 2时)你能告诉我出了什么问题吗?
在函数
place
内的主循环中,定义一个全局变量 i
。您在 findNext
中执行相同的操作,从而覆盖原始 i
变量。使用 i
关键字定义 var
,因此只能在创建它的范围内访问它。
for (var i = 0; i <= items; i++) {
var id = findNext(1, i);
时,由于舀取,
i=2
赋值返回 3。
请参考此链接:http://robertnyman.com/2008/10/09/explaining-javascript-scope-and-closures/
Javascript 中的 continue 关键字会有所帮助!
for (i = 0; i < 10; i++) {
if (i == 5) {
continue;
}
console.log(i);
}