将逗号分隔值附加到 select 选项 jQuery

append comma separated values to select options jQuery

我有一个用逗号分隔的刺痛

var str = "-1,opt1,opt2,opt3,opt4,opt5";

我想将这些值附加到我的 select 下拉列表中,这样它看起来应该像

<select>
   <option value="-1">-Select-</option>
   <option value="opt1">opt1</option>
   <option value="opt2">opt2</option>
   <option value="opt3">opt3</option>
   <option value="opt4">opt4</option>
   <option value="opt5">opt5</option>
</select>

我试过将字符串放入我的 select

 $.each(str, function(key, value) { 
    $('#sel').append('<option value="'+value+'">'+key+'</option>');
});

现在这会将每个字符串作为一个选项值。但是我如何将每个选项作为我上面描述的一个选项。

使用字符串 split 方法。

var str = "-1,opt1,opt2,opt3,opt4,opt5";
var optionStrings = str.split(',');
...

您需要 split() 在遍历之前将您的字符串放入数组中:

var str = "-1,opt1,opt2,opt3,opt4,opt5";
$.each(str.split(','), function(key, value) {
    $('#sel').append('<option value="' + value + '">' + key + '</option>');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<select id="sel"></select>

试试这个:

var array = str.split(",");
for (i=0;i<array.length;i++){
  $('#sel').append('<option value="'+array[i]+'">'+array[0]+'</option>');
}

你可以拆分字符串然后迭代

var str = "-1,opt1,opt2,opt3,opt4,opt5";
$.each(str.split(','), function(key, value) {
  $('#sel').append('<option value="' + value + '">' + (value == '-1' ? 'select' : value) + '</option>');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="sel">
</select>

你应该试试这个

var array = str.split(",");
for (i=0;i<array.length;i++){
  $('#sel').append('<option value="'+array[i]+'">'+array[0]+'</option>');
}

试试这个,

    var str = "-1,opt1,opt2,opt3,opt4,opt5";
    var strArr = str.split(',');
    var htmlOptions='';
    $(strArr).each(function(index,value){
         htmlOptions += '<option value="'+value+'">' +(value==-1 ? '--select--' : value) +'</option>';
    });

    $('#sel').html(htmlOptions);
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <select id="sel"></select>