Javascript中的For循环函数出错
这是一个调用SELECT元素值的函数。但我面临一个错误。 代码在这里Javascript中的For循环函数出错,javascript,Javascript,这是一个调用SELECT元素值的函数。但我面临一个错误。 代码在这里 function get_s_val(){ var foo = all_categories_1; var ov1 = ""; for(m=0;m<=foo.length;m++){ ov1 += foo[m].value+','; } console.log(ov1); var tme=setTimeout("get_s_val()", 1000); } get_s_val();
function get_s_val(){
var foo = all_categories_1;
var ov1 = "";
for(m=0;m<=foo.length;m++){
ov1 += foo[m].value+',';
}
console.log(ov1);
var tme=setTimeout("get_s_val()", 1000);
}
get_s_val();
我不知道我在哪里写的代码是错误的。修改循环条件,使其在迭代器小于数组长度时运行,否则在索引
foo.length
中点击不存在的元素时,您将得到未定义的
:
for(var m=0;m<foo.length;m++){
ov1 += foo[m].value+',';
}
for(var m=0;m在for
循环的顶部,mWhy不使用var
作为循环变量,为什么要将字符串传递给setTimeout
?所有类别实际上是什么?@soundar:all\u categories\u 1是一个HTML选择元素。谢谢Karim。它可以工作。但是告诉我一件事,就是“==”使用错误的东西。如果你想迭代数组的所有元素,那么是的。数组的第一个元素位于索引0
,因此最后一项位于元素总数-1
。希望这是清楚的。yeh Karim,我知道这条规则。但我刚才知道问题出在哪里。非常感谢。感谢pimvdb的回复谢谢Hammerite的回答。
for(var m=0;m<foo.length;m++){
ov1 += foo[m].value+',';
}
function get_s_val(){
var foo = all_categories_1;
var ov1 = "";
for(var m = 0; m < foo.length; m++){ // use var, and only loop from e.g.
// 0 to 2 when the length is 3, so <,
// not <=
ov1 += foo[m].value+',';
}
console.log(ov1);
setTimeout(get_s_val, 1000); // don't use a string, just pass the function.
// Plus, the variable is nowhere accessible so
// you can drop storing it
}
get_s_val();
console.log(foo.join());