如何将<options>从一个选择列表复制到另一个?</options>

时间:2012-06-19 19:01:09

标签: jquery jquery-selectors options

我正在尝试将<options> HTML代码从一个选择列表复制到另一个选择列表。我已经测试了下面的脚本,但它不起作用。

我已经使用'alert'功能进行了测试,但似乎只显示了之前选项中的值。

任何人都可以推荐我应该使用的东西吗?谢谢!

$("select[name='NHIndexNo" + tablecounter + "_" + rowCount + "'] option").each(function(){
   $("select[name='NHIndexNo" + tablecounter + "_" + (rowCount+1) + "'] option").appendto($(this).val());
});

5 个答案:

答案 0 :(得分:3)

<强> jQuery的:

$().ready(function() {  
     $('#add').click(function() {  
        return !$('#select1 option:selected').remove().appendTo('#select2');  
     });  
     $('#remove').click(function() {  
        return !$('#select2 option:selected').remove().appendTo('#select1');  
     });  
 });

<强> HTML:

<div>  
  <select multiple id="select1">  
   <option value="1">Option 1</option>  
   <option value="2">Option 2</option>  
   <option value="3">Option 3</option>  
   <option value="4">Option 4</option>  
  </select>  
  <a href="#" id="add">add &gt;&gt;</a>  
</div>  
<div>  
  <select multiple id="select2"></select>  
  <a href="#" id="remove">&lt;&lt; remove</a>  
</div>  

演示: http://jsfiddle.net/LbPAq/1

答案 1 :(得分:3)

只需尝试 - http://jsfiddle.net/zDFdX/

   $("#stwo").html( $("#sone").html() );

HTML

    <select id="sone">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
    </select>

    <select id="stwo">

    </select>

答案 2 :(得分:0)

$("select[name='NHIndexNo" + tablecounter + "_" + rowCount + "'] option").each(function(){
   $("select[name='NHIndexNo" + tablecounter + "_" + (rowCount+1) + "']").append($(this).clone());
});

你几乎没错了

答案 3 :(得分:0)

在将元素附加到其他选择元素之前克隆元素:

$("select[name='NHIndexNo" + tablecounter + "_" + rowCount + "'] option")
 .clone() // <-- creates a copy of each selected element
 .appendTo("select[name='NHIndexNo" + tablecounter + "_" + (rowCount+1) + "']");

由于您没有提供任何上下文信息或标记,我认为选择器是正确的。

答案 4 :(得分:0)

没有看到您的HTML,因此我只能猜测您的选择器正常工作,我建议:

$("select[name='NHIndexNo" + tablecounter + "_" + (rowCount+1) + "'] option").clone(true).appendTo($(this).val());

您的想法是克隆元素(匹配选择器),然后将 clone 附加到另一个select元素。

另请注意,我已将truewithDataAndEvents参数)传递到clone()方法;这是使用jQuery复制分配给这些元素的数据和事件。如果你不关心被克隆的那些,请省略这个参数。

参考文献: