js 函数 中for 为什么只执行第一个?

var j=0,i=0;
var s1 = document.getElementById("foodname1");
var s2 = document.getElementById("foodname2");
var food1 ={if $info.food1}{$info.food1}{else}0{/if};
var food2 ={if $info.food2}{$info.food2}{else}0{/if};

for(i;i<=s1.length;i++){
if(s1.options[i].value == food1){
s1.options[i].selected = true;
}
}

for(j;j<=s2.length;j++){
if(s2.options[j].value == food2){
s2.options[j].selected = true;
}
}
语法错了?还是啥呀
把for 的顺序换下也是只有最前面的能成功,第二个就不执行了。。点击编辑后onload执行这个函数,难道JS不能同时执行两个for 吗?

第1个回答  推荐于2016-11-19
s1.options[i].selected = true;
break;

s2.options[j].selected = true;
break;

就好了

你的问题出在初始化哪里,i=0,j=0 for循环比select的length多了1,当然会报错啦。本回答被提问者采纳
第2个回答  2014-09-18
你的问题不是少了个 break; 是 for( j ; j <= s1.length ; j++)中的 j<=s1.length ; 应该是j < s1.length。你没看清楚刚才那位的回答。问题根本就是数组越界

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网