试试:
<span id='myspan1'></span>
<span id='myspan2'></span>
<script language="javascript">
var start_date,end_date;
var start_utc,end_utc;function addByCreateElement(){
  start_date=new Date();
  start_utc=start_date.getTime();
  var selObj=document.createElement("select");
  for (var i =0;i<1000;i++){
    var op=document.createElement("option");
    op.text="text"+i;
    op.value="value"+i;
    selObj.options.add(op);  
  }
  document.all.myspan1.appendChild(selObj);
  end_date=new Date();
  end_utc=end_date.getTime();
  alert ("start_utc="+start_utc+"\nend_utc="+end_utc+"\n耗时:"+(end_utc-start_utc)+"毫秒");
}function addByInnerHTML(){
  start_date=new Date();
  start_utc=start_date.getTime();
  var str="<select name='sel'>";
  for (var i =0;i<1000;i++){
    str=str+"<option value='value"+i+"'>text"+i+"</option>";
  }
str=str+"</select>";
document.all.myspan2.innerHTML=str;
end_date=new Date();
end_utc=end_date.getTime();
alert ("start_utc="+start_utc+"\nend_utc="+end_utc+"\n耗时:"+(end_utc-start_utc)+"毫秒");
}
</script><input type=button value="addByCreateElement" onclick="addByCreateElement()">
<input type=button value="addByInnerHTML" onclick="addByInnerHTML()">

解决方案 »

  1.   

    try
    --------------------------------
    <select name="lstF"><option value="1">1</option></select><select name="lstT" id="b"><option value="2">2</option><option value="2">2</option></select><input type="button" value="tt" onclick="tt()">
    <script>
      function tt() {
        var temp = lstF.innerHTML
        lstF.outerHTML = "<select name='lstF'>"+lstT.innerHTML+"</select>"
        lstT.outerHTML = "<select name='lstT'>"+temp+"</select>"
      }
    </script>
      

  2.   

    用循环的方式肯定是慢的要命了,不知道你看没看过梅花雪的tree,有可以借鉴的地方,总之不能用droplist,否则速度上不来的
      

  3.   


      你可以先生成HTML字符串,这样速度会很快,然后赋值给对象的innerHTML属性,一次性就覆盖过来,比你那每一次循环就读写一次的好。。
      

  4.   


      你可以先生成HTML字符串,这样速度会很快,然后赋值给对象的innerHTML属性,一次性就覆盖过来,比你那每一次循环就读写一次的好。。
      

  5.   

    不是直接操作innerHTML,而是生成一串字符后一次性的去赋给innerHTML属性,这样效率会有所提高。
      

  6.   

    可以用innerText的地方 还是不要用 innerHTML二者的速度差太多了,如果要界面有响应的话,建议用定时器,分开处理. 才是正解。