JQuery clone <select>元素</select>

时间:2010-10-11 13:28:16

标签: jquery html forms select clone

我想克隆一个&lt; select&gt;使用JQuery在HTML中输入 我不知道怎么回事,所以我想在这里问。

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

我的选择元素如下所示:

<select id="options">
    <option value="1">Opt 1</option>
    <option value="2">Opt 2</option>
    <option value="3">Opt 3</option>
</select>

感谢。

5 个答案:

答案 0 :(得分:29)

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

$('select#options').clone().attr('id', 'newOptions').appendTo('.blah');

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

答案 1 :(得分:12)

这个怎么样?

<select id="options">
    <option value="1">Opt 1</option>
    <option value="2">Opt 2</option>
    <option value="3">Opt 3</option>
</select>

// target

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

$('#options').find('option').clone().appendTo('#options2');

感谢。

答案 2 :(得分:9)

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

$('#options2').html($('#options').html());

答案 3 :(得分:0)

jQuery内置了clone方法。有许多options用于重新添加克隆元素。正确的选择取决于您的应用程序。

答案 4 :(得分:0)

你可以通过选择更改将attr选项选为true,然后使用clone即可。

&#13;
&#13;
$("#options").off("change").on("change", function() {
    var val = $(this).val();

    $(this).find("option[value=" + val + "]").attr("selected", true);
});
&#13;
&#13;
&#13;

&#13;
&#13;
$("#options").off("change").on("change", function() {
    var val = $(this).val();

    $(this).find("option[value=" + val + "]").attr("selected", true);
});
&#13;
&#13;
&#13;