function changelocation1(select3,localtionid1){
select3.length = 0;
var loc1 = localtionid1;
select3.options[select3.length] = new Option("","");
for(var j=0; j<subcat1.length;j++){
if(null == loc1 || loc1 == ""){
select3.options[select3.length] = new Option(subcat1[j][0],subcat1[j][0]);
}else if(loc1 == subcat1[j][1]){
select3.options[select3.length] = new Option(subcat1[j][0],subcat1[j][0]);
}
}
}
js中options也就是红色部分索引值是怎么改变的在代码中并没有发现类似++的代码,那么它的索引值是怎么改变的

解决方案 »

  1.   

    就是没有类似于select3.length++的代码,没有相加程序,他的索引值怎么改变的,应该一直都是0的
      

  2.   

    你new Option一个之后,length就加1了
      

  3.   

    select3.length = 0;
    你每次触发onchange事件是时候就给它清空了options
      

  4.   

    嗯,这个我明白了,但是那个new一次就加1是什么原因
      

  5.   

    select3.options[select3.length] = new Option
    这一行,就是增加了一个option,length当然是加了1
      

  6.   

    var sl = function(){
        this.length++;
    }
    var obj = [];
    obj[obj.length] = new sl();
    obj[obj.length] = new sl();
    obj[obj.length] = new sl();
    obj[obj.length] = new sl();
    obj[obj.length] = new sl();
    alert(obj.length)
      

  7.   

    这个option的index是从0开始算的啊,所以其实最多只能到select3.options[select3.length-1]而select3.options[select3.length]new Option(subcat1[j][0],subcat1[j][0]);这句执行以后呢select3的length已经是select3.length+1了
      

  8.   

    为什么是select3.length = 0 不是select3.options.length =0