//记录选中的值
var idArray = ids.split(",");
 for(var i=0;i<idArray.length;i++){
          if(idArray[i] != ''){
            //选中option
            jQuery("#"+prefix+(i+1)).attr("value",idArray[i]);
            //$("#"+prefix+(i+1)).val(idArray[i]);
            //初始化下一个select
            initCatData(idArray[i],prefix+(i+2),categoryIds);
          }
} 有多个select是联动的, 问题很奇怪,initCatData 没有问题,能初始化其他的select--------------------
jQuery("#"+prefix+(i+1)).attr("value",idArray[i]); 问题在这一句,  初始化选中的时候,不能初始化选中,多个select都是选中的第一个option 我在jQuery("#"+prefix+(i+1)).attr("value",idArray[i]); 上面加一个alert(); 就能初始化选中
我断点调试也能选中,去掉断点又不能选中了 

解决方案 »

  1.   

    window.setTimeout(function(){jQuery("#"+prefix+(i+1)).attr("value",idArray[i])},0);好像不行,设置断点都不能选中了  是不是写错了
      

  2.   

    window.setTimeout(function(){jQuery("#"+prefix+(i+1)).attr("value",idArray[i])},0);
    是在循环完成之后才调用
      

  3.   

     jQuery("#"+prefix+(i+1)).find("option").each(function(){
          if($(this).val()==idArray[i]){
                $(this).attr("selected",true);
           }
     })
      

  4.   

    为什么 要用jq直接  对象.value="1"这样就行了
      

  5.   

    $('#selectid').val('1');
    选中值是option的选项
      

  6.   

    这不是还要循环多次? 多个select  就....
      

  7.   


    这一句用过  和第一句一样
    //$("#"+prefix+(i+1)).val(idArray[i]);
      

  8.   

    我知道问题的所在了
     
     initCatData(idArray[i],prefix+(i+2),categoryIds);
     这个方法是 ajax异步请求的,异步的时候去选中, 可能请求没有返回