2

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

我已经使用“警报”功能进行了测试,但它似乎只显示先前选项中的值。

有人可以推荐我应该使用什么吗?谢谢!

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

5 回答 5

4

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

于 2012-06-19T19:05:16.693 回答
4

只需尝试 - 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>
于 2012-06-19T19:06:31.473 回答
0
$("select[name='NHIndexNo" + tablecounter + "_" + rowCount + "'] option").each(function(){
   $("select[name='NHIndexNo" + tablecounter + "_" + (rowCount+1) + "']").append($(this).clone());
});

你几乎是对的

于 2012-06-19T19:03:54.217 回答
0

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

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

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

于 2012-06-19T19:05:49.723 回答
0

在没有看到您的 HTML 的情况下,我只能猜测您的选择器工作正常,我建议:

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

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

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

参考:

于 2012-06-19T19:06:20.657 回答