Select2 不在“追加”上运行

use*_*008 3 html javascript jquery jquery-select2

Select2 函数在附加新的选择标记时不会打开,并且控制台出现此错误(未捕获的类型错误:$(...).select2 不是函数)。

 <script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.2.1.min.js">   </script>
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <script src='https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.full.min.js'></script>

$(document).on('click', '#addNewItem', function() {
      var a = $(".gh").val();
      a++;
      $('.asd').append('<select class="form-control select2" name="ProposalItemName[]">' +
        '<optgroup label="Items">' +
        '<option>test</option>' +
        '<option>test</option>' +
        '</optgroup>' +
        '</select>');
      $('.select2').select2();
    });
Run Code Online (Sandbox Code Playgroud)

Shi*_*tya 5

这里有一个解决方案https://jsfiddle.net/cx5m40wu/2/

$(document).on('click', '#addNewItem', function() {
  var a = $(".gh").val();
  a++;
  $('.asd').append(`<select class="form-control select2" name="ProposalItemName[]">
    <optgroup label="Items">
      <option>test</option>
      <option>test</option>
    </optgroup>
  </select>`);
  $('.select2').select2();      
});
       
Run Code Online (Sandbox Code Playgroud)
.alignRight{
  float: right;
  padding-left: 15px;
}
Run Code Online (Sandbox Code Playgroud)
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.full.min.js"></script>
<div class="asd">
  test
</div>
<button id="addNewItem" type="button">
Click
</button>
Run Code Online (Sandbox Code Playgroud)

我相信您的代码中的问题是 2 jQuery

JavaScript检查&文件的顺序CSS

我使用了ES6标准(模板文字)

希望对你有帮助。