Javascript 初始化动态添加的select2

Javascript 初始化动态添加的select2,javascript,jquery,jquery-select2,Javascript,Jquery,Jquery Select2,我动态添加了select2,但它不会初始化。我尝试了以下代码(在stackoverflow本身上找到),但它不起作用,请检查我的小提琴上的代码。告诉我我在代码中遗漏了什么。 提前谢谢 所提供示例的一些问题: select2已应用于所有。select2下拉列表中,但没有使用此行的任何选项:$('.select2')。select2() $(“.select-to-select2”)。每个都不做任何事情,因为类select-to-select2没有下拉列表。(另外,每个都不需要,您只需将$(“.

我动态添加了select2,但它不会初始化。我尝试了以下代码(在stackoverflow本身上找到),但它不起作用,请检查我的小提琴上的代码。告诉我我在代码中遗漏了什么。 提前谢谢


所提供示例的一些问题:

  • select2已应用于所有
    。select2
    下拉列表中,但没有使用此行的任何选项:
    $('.select2')。select2()
  • $(“.select-to-select2”)。每个
    都不做任何事情,因为类
    select-to-select2
    没有下拉列表。(另外,每个
    都不需要
    ,您只需将
    $(“.select-to-select2”)
    传递到
    初始化select2
  • 附加到
    包装器的字符串是无效的HTML。最后一个“删除”链接应该在包装
    .row
    div
  • id
    s对于页面必须是唯一的。在添加更多完全相同的下拉列表后,它们与以前的下拉列表具有相同的ID/名称,因此这将导致不可预测的行为(旧的下拉列表可能会丢失select2,只有新的下拉列表才能获得它)。例如,不能有多个元素具有
    id=“pgm_que_ans1”
    ,下一个元素必须不同
  • 在这个调用中,
    initializeSelect2(wrapper)
    wrapper
    没有指定要在哪些下拉列表上应用select2:,最好将新的HTML保存到一个变量(例如
    var$newSelects('HTML here'));
    ,将其添加到DOM后,只将其中的
    .select2
    s传递到
    initializeSelect2
    ,例如
    wrapper.append($newSelects);initializeSelect2($newSelects.find('.select2'))
下面是一个演示,其中包含了所有内容:

function initializeSelect2(selectElementObj) {
    selectElementObj.select2({
        tags: true
    });
}

$(".select-to-select2").each(function() {
    initializeSelect2($(this));
});