Jquery 是否将select2应用于克隆节点中的元素?

Jquery 是否将select2应用于克隆节点中的元素?,jquery,jquery-select2,Jquery,Jquery Select2,全部, 我有一个PHP模板文件,它生成一个带有3个select字段的隐藏div <div> <div class="form-group accessory collapse"> <select class="accessory" style="width:50%"> </select> <span class="input-group-addon">×</span>

全部,

我有一个PHP模板文件,它生成一个带有3个select字段的隐藏div

<div>
    <div class="form-group accessory collapse">
        <select class="accessory" style="width:50%">
        </select>

        <span class="input-group-addon">×</span>

        <select class="accessoryQuantity" style="width:10%">
        </select>

        <select class="accessoryType">
        </select>
    </div>
然后,我尝试像这样将select2应用于克隆的jQuery对象,但它只会弄乱整个克隆节点

$newItem.select2();
如何将select2应用于克隆节点

注意:我尝试将select2应用于隐藏的selects,但当您克隆它时,它会弄乱select2下拉列表。

尝试更改

$newItem = $('.form-group. .accessory .collapse').clone();


我在过去也遇到过同样的问题,我发现解决这个问题的最好办法是在克隆原始元素之前销毁它,然后在原始元素和克隆元素上重新初始化select2

e、 g


整个过程非常快,因此我在看到select2被销毁并在原始select上重新初始化时没有遇到任何问题。

此外,克隆不会将元素添加到DOM中。您必须手动添加它。您可以尝试类似$newItem.appendTo(“body”);在应用select2之前,我知道这一点,但是我如何在内存中而不是在DOM中添加select2?为什么要这样做?对DOM中不存在的元素使用select2没有任何意义。举一个你想要达到的目标的例子会有所帮助
$newItem = $('.form-group. .accessory .collapse').clone();
$newItem = $('.form-group.accessory.collapse').clone();
$original.select2('destroy');
var $clone = $original.clone();

// add the clone to the DOM, e.g.
$clone.insertAfter($original);

$original.select2({options});
$clone.select2({options});