ret----> 100001,北京001|100002,北京002|,200001,南京001|...........很长有将近10000个插入下拉框中,用下面方法要将近一分钟,怎么才能更快?
var ops = ret.split("|"); 
            for (var j = 0; j < ops.length; j++) { 
               var op = ops[j]; 
               var ss = op.split(","); 
               var oOption = document.createElement("OPTION"); //创建一个OPTION节点 
               obj.options.add(oOption);    //将节点加入region_name选项中 
               oOption.innerText = ss[1];    //设置选择展示的信息 
               oOption.value = ss[0];         //设置选项的值 
             } 

解决方案 »

  1.   

    听说把ops.length放到临时变量中会有更好的效果.
      

  2.   


    for (var i = 0; i < 10000; i++) { sel.options[i].text = sel.options[i].value = defenVal; }这样会快些 但10000个下拉框...
      

  3.   

    <select id="list">
    </select>
    <script type='text/javascript'>
    (function(){
    var list = document.getElementById("list"),op=[];
    for(var i=0,j=10000;i<j;i++){
    op[op.length] = "<option value='"+i+"'>"+i+"</option>";
    }
    if(list.outerHTML){
    list.outerHTML = list.outerHTML.replace(/></,">"+op.join('')+"<");
    }
    else if(list.innerHTML)
    {
    list.innerHTML = op.join('');
    }
    })()
    </script>
      

  4.   

    outerHTML 应该最快
    要兼容的话用innerHTML模拟
      

  5.   


    这个不是用在下拉框的
    是用在图片或html内容的