AdminLTE3を使って、select2を複数追加できるように作成してみました。
この記事が少しでも解決の役に立てれば幸いです。
完成イメージ

https://adminlte3.wbscustom.com/select2.php
※追加ボタンを押すとselect2で設定したセレクトボックスが複製され、番号を振り直します
※削除ボタンを押すとレコードが削除され番号を振り直します
実際のコード header部
AdminLTE3の「starter」に追加するコード。
<!-- オリジナル style -->
<link rel="stylesheet" href="./css/style.css">
<!-- Select2 -->
<link rel="stylesheet" href="./AdminLTE/plugins/select2/css/select2.min.css">
<link rel="stylesheet" href="./AdminLTE/plugins/select2-bootstrap4-theme/select2-bootstrap4.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<!-- Select2 -->
<script src="./AdminLTE/plugins/select2/js/select2.full.min.js"></script>
実際のコード css
.select2-container .select2-selection--single {
height: 40px!important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
height: 37px!important;
right: 8px!important;
}
.label-box {
position: relative;
margin-bottom: 0;
}
.label-box-rght {
position: absolute;
right: 10px;
top: 0px;
}
.label-box-rght button {
padding: 3px 6px;
font-size: 0.9em;
}
実際のコード Content部
1.追加を押す事でリストNoのname要素とvalue要素に番号を振り直す
2.セレクトボックスのname要素に番号を振り直す
<div class="col-lg-6">
<div class="card card-primary card-outline">
<div class="card-header">
<h5 class="m-0">Select2</h5>
</div>
<div class="card-body">
<div class="form-group label-box">
<label class="midashi">店舗(必須)</label>
<span class="label-box-rght"><button type="button" class="btn btn-outline-info add_btn">追加</button></span>
</div>
<div class="card card-success">
<!-- /.card-header -->
<div class="card-body p-0">
<table class="table table-condensed">
<tbody>
<tr>
<th style="width: 10px">No</th>
<th>店舗</th>
<th style="width: 83px;font-size: 0.9em;">削除</th>
</tr>
<tr id="fire">
<td class="nolist"><span id="parent">1</span>
<input type="hidden" name="nolist1" value="1">
</td>
<td id="select" class="shop_name">
<select class="select2 select2-danger" data-dropdown-css-class="select2-danger" style="width: 100%;"name="shop_name1">
<option selected="selected">美容室</option>
<option>美容室2</option>
<option>居酒屋</option>
<option>居酒屋2</option>
<option>百貨店</option>
<option>百貨店2</option>
</select>
</td>
<td>
<button type="button" style="font-size: 0.8em;padding: 8px 3px" class="btn btn-block btn-outline-danger remove">削除</button>
</td>
</tr>
</tbody>
</table>
<!-- /.card-body -->
</div>
</div>
<script type="text/javascript">
// 追加
$(function() {
$('.add_btn').on('click', function(){
$clone = $( "#fire" ).clone().appendTo( "tbody" );
$clone.find("#select span").remove();
$clone.find(".select2").select2();
$('.select2').select2();
$('.nolist input').each(function(i){
$(this).attr('value',(i+1));
});
$('.nolist input').each(function(i){
$(this).attr('name','nolist' + (i+1));
});
$('.shop_name select').each(function(i){
$(this).attr('name','shop_name' + (i+1));
});
$('.nolist span').each(function(i){
$(this).text(+ (i+1));
});
});
});
// 削除
$(function(){
$(document).on('click', '.remove', function() {
$(this).parents('tr').remove();
$('.nolist input').each(function(i){
$(this).attr('value',(i+1));
});
$('.nolist input').each(function(i){
$(this).attr('name','nolist' + (i+1));
});
$('.shop_name select').each(function(i){
$(this).attr('name','shop_name' + (i+1));
});
$('.nolist span').each(function(i){
$(this).text(+ (i+1));
});
});
});
</script>
</div>
</div>
</div>
<!-- /.col-md-6 -->
<script>
$(function () {
$('.select2').select2();
})
</script>