Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何复制<;选项>;从一个选择列表到另一个选择列表?_Jquery_Jquery Selectors_Options - Fatal编程技术网

Jquery 如何复制<;选项>;从一个选择列表到另一个选择列表?

Jquery 如何复制<;选项>;从一个选择列表到另一个选择列表?,jquery,jquery-selectors,options,Jquery,Jquery Selectors,Options,我正在尝试将HTML代码从一个选择列表复制到另一个选择列表。我已经测试了下面的脚本,但它不起作用 我已经用“警报”功能进行了测试,但它似乎只显示前面选项中的值 有人能推荐我应该用什么吗?谢谢大家! $("select[name='NHIndexNo" + tablecounter + "_" + rowCount + "'] option").each(function(){ $("select[name='NHIndexNo" + tablecounter + "_" + (rowCou

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

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

有人能推荐我应该用什么吗?谢谢大家!

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

你几乎说对了

jQuery:

$().ready(function() {  
     $('#add').click(function() {  
        return !$('#select1 option:selected').remove().appendTo('#select2');  
     });  
     $('#remove').click(function() {  
        return !$('#select2 option:selected').remove().appendTo('#select1');  
     });  
 });
<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>  
HTML:

$().ready(function() {  
     $('#add').click(function() {  
        return !$('#select1 option:selected').remove().appendTo('#select2');  
     });  
     $('#remove').click(function() {  
        return !$('#select2 option:selected').remove().appendTo('#select1');  
     });  
 });
<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>  

选择1
选择2
选择3
选择4

演示:

在将元素附加到另一个select元素之前克隆这些元素:

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

.clone()/没有看到您的HTML,因此我只能猜测您的选择器是否正常工作,我建议:

$("select[name='NHIndexNo" + tablecounter + "_" + (rowCount+1) + "'] option").clone(true).appendTo($(this).val());
其思想是克隆元素(与选择器匹配),然后将克隆附加到另一个
select
元素

另外,请注意,我已将
true
(带有数据和事件的
参数)传递到
clone()
方法中;这是通过jQuery跨分配给这些元素的数据和事件进行复制。如果您不关心克隆的对象,请忽略此参数

参考资料:

只要试一下-

HTML


1.
2.
3.
4.

您也可以显示HTML吗?
附录($(this.val())
?这是
的appendTo
$(this).val()
不是一个元素。只是想知道,为什么里面有
.remove()
?在我的测试中,它显示为
。appendTo()
无论如何都会这样做。@JeffreyKemp
.remove()
用于从第一个选择框中删除所选项目。
.appendTo()
将该项附加到第二个选择框。您是否在没有
.remove()
的情况下尝试过它?它仍然会删除它。你是对的。出现这种情况的主要原因是
appendTo()
将选择器插入到目标容器中。如果我们要使用
.append()
,那么我们需要使用
.remove()
    <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>