例如这个下拉框,在最后面添加,我知道是aa.options.add(new Option("ee","5")),在指定位置插入项应该怎么做呢,目前aa是第一项,我想在aa前面插入一项cc,又或者是在bb前面插入一项dd,应该怎么做呢
<select name="aa" id="aa">
    <option value="1">aa</option>
    <option value="2">bb</option>
  </select>

解决方案 »

  1.   

    提供一个思路:把option以字符串的形式保存在数组里面
    然后用数组的splice方法arr.splice(n,0,str);// n:插入第几行,str:内容
      

  2.   

    var aa = document.getElementById("aa");
    aa.insertBefore(new Option("cc","cc"), aa.options[0]);
      

  3.   

    var slc= $("aa");insertOption(slc,1,new Option('333','33'));
    function insertOption(slc,index,option)
    {
    if( index<0 || index > slc.options.length ){return;}
        for(var i= slc.options.length;i> index && i>0 ;i--){
            slc.options[i]=new Option(slc.options[i-1].text);
        }
         slc.options[index]=option;
    }
      

  4.   

    zell419 的aa.insertBefore(new Option("cc","cc"), aa.options[0]) 插入是成功了,但是插入的文本是空白的,输出的html是<option value="cc"/> 这样,正确的应该要<option value="cc">ccc</option>这样,
    hch126163 的测试了完全正确,结贴给分