使用 jquery 创建并复制一个 select 框

Create and Copy a select box with jquery

我们想制作一个新的 select 框,并在事件发生时从另一个 select 框复制其选项。我们使用以下代码:

//Create a new select box and add it to a div
$('#content').append("<select id='destination'/>");
//Create copy source options
var $options = $("#source > option").clone();
//Append source option to destination
$("#destination").append($options);

http://jsfiddle.net/e8ctkkvL/1/

我有一个包含很多 select 的页面(每个都有很多选项),上面的代码很慢!有什么方法可以使 JS 更快?!

您应该设置一个 class 而不是 ID,然后将其附加到最后创建的 select,例如:

$(document).ready(function () {
    $("#btn").click(function () {
        //Create a new select box
        $('#content').append("<select class='destination'/>");
        //Create copy source options
        var $options = $("#source > option").clone();
        //Append source option to destination
        $(".destination").last().append($options);
    });
});

Fiddle: http://jsfiddle.net/e8ctkkvL/3/

我宁愿复制源代码并设置动态 ID,因为您可能想要多个 select 框和不同的 ID,如下所示:

演示@Fiddle

$(document).ready(function () {
    var id = 1;
    $("#btn").click(function () {
        //Create a new select box
        $('#content').append($("#source").clone(true).attr({id: "destination" + id}));
        id++;
    });
});