<select id="a" size="5">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<button onclick="moveOption(a,b)">move</button>
<select id="b">
</select>
<script>
function moveOption(from,to) {
for (to.length=0,to.size=from.size,i=0;i<from.length;i++) {
to.options[to.length] = new Option(from.options[i].text,from.options[i].value);
}
}
</script>

解决方案 »

  1.   

    <select id="a" size="5">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    </select>
    <button onclick="moveOption(a,b)">move</button>
    <select id="b">
    </select>
    <script>
    function moveOption(from,to) {
    for (to.length=0,to.size=from.size,i=0;i<from.length;i++) {
    to.options[to.length] = new Option(from.options[i].text,from.options[i].value);
    from.options[i--] = null;
    }
    }
    </script>
      

  2.   

    <select id="a" size="5">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    </select>
    <button onclick="e()">move</button>
    <select id="b">
    </select>
    <script>
    function e() {
      b.swapNode(a)
    }
    </script>
      

  3.   

    你这样不是把a移到b了, 我希望保留A的内容,而且我也不希望在函数里执行,如果不在函数里面似乎不会执行<script>b.swapNode(a);</script>
      

  4.   

    <select id="a" size="5">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    </select><select id="b"></select><button onclick="e()">move</button><script>
    function e() {
      b.swapNode(a.cloneNode(true))
    }
    </script>
      

  5.   

    tohaitor(流星) 
    你在e()最后alert(document.body.outerHTML)看看,两个id为a的select哦
    改改:
    <select id="a" size="5">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    </select><select id="b"></select><button onclick="e()">move</button><script>
    function e() {
      var t=a.cloneNode(true);
      b.swapNode(t);
     a[1].id="b"
    alert(document.body.outerHTML)
    }
    </script>
      

  6.   

    <select id="a" size="5">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    </select><select id="b"></select><script>
      document.all.b.swapNode(a.cloneNode(true))
      document.all.a[1].id="b"
    </script>
      

  7.   

    谢谢!我还想请教一下,如果我这样复制,但是当我提交FORM的时候,会把这个SELCET里面的OPTION都清除了,有办法解决嘛?
      

  8.   

    谢谢啊
    我现在COPY数据应该是可以了
    <select id='a' name='test'></select>
    <select id='b'></select>document.all.b.swapNode(document.all.a.cloneNode(true));
    document.all.b.id="b";
    但我不知道a[1]是什么意思
    还有当我把a的内容复制到b后,紧接着把a的内容清除
    form1.test.options.length=0;
    然后又往a里面添加内容
    var strName = 'aa';
    var objOption = new Option(strName);
    form1.test.options.add(objOption);
    现在问题是没法往a添加入内容,不成功
      

  9.   

    a[1]表示id=a的集合的第2个元素。
    form1.test.options[form1.test.options.length].add(objOption);
      

  10.   

    谢谢啊,那你这样不是把id等于a的集合的id改成b了?
    能不能不改啊?