JQuery clone <select>元素

dig*_*rld 17 html forms jquery select clone

我想使用JQuery克隆HTML中的<select>输入.
我不知道怎么回事,所以我想在这里问一下.

特别感兴趣的是将其写回文档的最佳方式.

我的select元素如下所示:

<select id="options">
    <option value="1">Opt 1</option>
    <option value="2">Opt 2</option>
    <option value="3">Opt 3</option>
</select>
Run Code Online (Sandbox Code Playgroud)

谢谢.

小智 30

请参阅:http://api.jquery.com/clone/

$('select#options').clone().attr('id', 'newOptions').appendTo('.blah');
Run Code Online (Sandbox Code Playgroud)

appendTo(...)只是插入克隆元素的一种方法.其他方法可以在这里找到:http://api.jquery.com/category/manipulation/

  • 注意来自jquery clone的文档,它不会克隆所选的任何内容:"出于性能原因,某些表单元素的动态状态(例如,键入textarea的用户数据和对select的用户选择)不会被复制到克隆元素.克隆输入元素时,元素的动态状态(例如,键入文本输入的用户数据和对复选框的用户选择)将保留在克隆元素中.见http://api.jquery.com/clone/ (2认同)

小智 12

这个怎么样?

<select id="options">
    <option value="1">Opt 1</option>
    <option value="2">Opt 2</option>
    <option value="3">Opt 3</option>
</select>
Run Code Online (Sandbox Code Playgroud)

//目标

<select id="options2">
</select>

$('#options').find('option').clone().appendTo('#options2');
Run Code Online (Sandbox Code Playgroud)

谢谢.


jes*_*sal 9

只有接受答案的问题是如果您的选择包含optgroups,则不会复制它们.在这种情况下,我发现最简单的方法就是这样做:

$('#options2').html($('#options').html());
Run Code Online (Sandbox Code Playgroud)