Лучший способ загрузить выпадающий список из строки, разделенной запятыми

#jquery

#jquery

Вопрос:

У меня есть строка значений, разделенных запятыми. Мне нужно разделить строку и загрузить каждую запись в dropdown . У меня есть следующий код, который выполняет эту работу.

Есть ли лучший код, который уменьшает количество строк без использования какой-либо другой библиотеки?

код

                //Remove existing entries from dropdown
                $('.ddlASN').empty();

                //Split string to array
                var arr = result.split(',');

                //Loop through array
                for(var i = 0; i<arr.length; i  )
                {

                    //Add ddl options - text and value
                    $('.ddlASN').append($('<option></option>').val(arr[i]).html(arr[i]));
          }
  

Ответ №1:

Вы можете упростить его до:

 $.each(result.split(','), function(i, e) {
    $('.ddlASN').append($('<option>', { value: e, text: e }));
});
  

Комментарии:

1. Вы все равно должны использовать $('.ddlASN').empty() для очистки существующих.

Ответ №2:

Вот необычное решение:

 $('.ddlASN').html($.map(result.split(','), function(item) {
  $('<option></option>').val(item).html(item)[0].outerHtml()
}).join(''));
  

Он заменяет HTML-содержимое тега select, поэтому нет необходимости сначала очищать содержимое.

Смотрите в действии

В итоге я бы предпочел использовать простое и понятное решение в вопросе, а не мой собственный ответ, который был просто для вызова.