JQuery - Несколько избранных опций

Я пытаюсь захватить все выбранные пункты в следующем выборе несколько и разделить их запятой. Код ниже:

<select id="ps-type" name="ps-type" multiple="multiple" size="5">
    <option>Residential - Wall Insulation</option>
    <option>Residential - Attic /Crawl Space Insulation</option>
    <option>Residential - Foundation Insulation</option>
    <option>Residential - Exterior Roof System</option>
    <option>Commercial - Wall Insulation</option>
    <option>Commercial - Air Barrier System (Walltite)</option>
    <option>Commercial - Roof System</option>
</select>

Результат, который я ищу, следующий:

Жилой - стенная изоляция, коммерческая - стенная изоляция...

45
задан Zakaria Acharki 17 September 2018 в 16:00
поделиться

6 ответов

Вы можете использовать селектор :selected и встроенную функцию $.map() как часть вашей цепочки.

$("option:selected").map(function(){ return this.value }).get().join(", ");
84
ответ дан 26 November 2019 в 20:57
поделиться

Добавьте значения в массив и используйте join для создания строка:

var items = [];
$('#ps-type option:selected').each(function(){ items.push($(this).val()); });
var result = items.join(', ');
23
ответ дан 26 November 2019 в 20:57
поделиться
var list = "";
$('#ps-type option:selected').each(function(){
  list += this.value + ", ";
});
return list.substr(0, list.length - 2);
2
ответ дан 26 November 2019 в 20:57
поделиться

Что-то вроде этого должно помочь:

var result = "";
$('#ps-type option:selected').each(function(i, item){ 
   result += $(this).val() + ", ";
});
2
ответ дан 26 November 2019 в 20:57
поделиться

В элементе множественного выбора команда val для select element вернет массив значений выбранных опций.Если значения отсутствуют, используется текст элемента:

var output = $("#ps-type").val().join(', ');

update: Однако, когда нет выбранных параметров, val () возвращает null не пустой множество. Один из способов обойти это:

var output = ($("#ps-type").val() || []).join(', '); 

Вы можете поэкспериментировать с этим в этой демонстрации, которую я собрал .

Из документы :

В случае элементов