在JQuery中,如何将选择选项的子集从一个选择菜单复制到另一个选择菜单?

时间:2015-01-16 19:52:56

标签: javascript jquery options copying select-menu

我正在使用JQuery 1.11.1。我有两个选择菜单元素,一个包含

等选项
<select id="select1">
    <option value="A">option A</option>
    <option value="B">option B</option>
    ...
    <option value="">=============</option>
    <option value="AA">option AA</option>
    <option value="BB">option BB</option>
    ...
</select>

如何使用以下选项复制选项(包括选项) &#34; =============&#34;文本到第二个选择菜单(让我们说第二个选择菜单有id =&#39; select2&#39;)。

谢谢, - 戴夫

2 个答案:

答案 0 :(得分:1)

var option, count = -1;
while ((option = $('#select1 option')[++count]).value != "")
{
  $(option).clone().appendTo('#select2');
}
$($('#select1 option')[count]).clone().appendTo('#select2'); //for the '=====' one
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="select1">
    <option value="A">option A</option>
    <option value="B">option B</option>
    <option value="">=============</option>
    <option value="AA">option AA</option>
    <option value="BB">option BB</option>
</select>

<select id="select2">
</select>

答案 1 :(得分:0)

第一个解决方案:

你可以这样做:

var emptyOption = $("#select1 option").filter(function() {
                     return $.trim( $(this).val() ) == '';
                  });
var $options = emptyOption.prevAll().addBack().clone();
$('#select2').append($options);

JSFiddle:http://jsfiddle.net/inanda/uosvokdr/2/

第二个解决方案:

如果您可以为要复制的选项添加类,则可以通过以下方式执行此操作。

HTML

<select id="select1">
    <option value="A" class="copy">option A</option>
    <option value="B" class="copy">option B</option>

    <option value="" class="copy">=============</option>
    <option value="AA">option AA</option>
    <option value="BB">option BB</option>

</select>

<select id="select2">
</select>

使用Javascript:

var $options = $("#select1 > option.copy").clone();

$('#select2').append($options);

工作JsFiddle:http://jsfiddle.net/inanda/m2qd177u/1/