Как получить все варианты выбора с помощью jQuery?

Как я могу получить все варианты выбора через jQuery, передав его ID?

Я ищу только их значения, а не текст.

Ответ 2

Я не знаю jQuery, но я знаю, что если вы получите элемент select, он содержит объект "options".

var myOpts = document.getElementById('yourselect').options;
alert(myOpts[0].value) //=> Value of the first option

Ответ 3

$.map, вероятно, самый эффективный способ сделать это.

var options = $('#selectBox option');

var values = $.map(options ,function(option) {
    return option.value;
});

Вы можете добавить параметры изменения в $('#selectBox option:selected'), если хотите только те, которые были выбраны.

Первая строка выбирает все флажки и помещает их элемент jQuery в переменную. Затем мы используем функцию .map jQuery для применения функции к каждому из элементов этой переменной; все, что мы делаем, это возврат значения каждого элемента, поскольку это все, о чем мы заботимся. Поскольку мы возвращаем их внутри функции map, она фактически строит массив значений, как запрошено.

Ответ 4

В некоторых ответах используется each, но map - лучшая альтернатива здесь IMHO:

$("select#example option").map(function() {return $(this).val();}).get();

В jQuery есть (по крайней мере) две функции map. Ответ Томаса Петерсена использует "Utilities/jQuery.map"; этот ответ использует "Traversing/map" (и, следовательно, немного более чистый код).

Это зависит от того, что вы собираетесь делать со значениями. Если вы, скажем, хотите вернуть значения из функции, map, вероятно, является лучшей альтернативой. Но если вы собираетесь использовать значения непосредственно, вы, вероятно, захотите each.

Ответ 5

$('select#id').find('option').each(function() {
    alert($(this).val());
});

Ответ 6

$("#id option").each(function()
{
    $(this).prop('selected', true);
});

Хотя способ CORRECT - установить свойство DOM элемента, например:

$("#id option").each(function(){
    $(this).attr('selected', true);
});

Ответ 7

Вы можете взять все свои "выбранные значения" по имени флажков и представить их в укусе, разделенном ",".

Хороший способ сделать это - использовать jQuery $.map():

var selected_val = $.map($("input[name='d_name']:checked"), function(a)
    {
        return a.value;
    }).join(',');

alert(selected_val);

Ответ 8

Это поместит значения параметров #myselectbox в хороший чистый массив для вас:

// First, get the elements into a list
var domelts = $('#myselectbox option');

// Next, translate that into an array of just the values
var values = $.map(domelts, function(elt, i) { return $(elt).val();});

Ответ 9

Рабочий пример

Самый эффективный способ сделать это - использовать $.map()

Пример:

var values = $.map($('#selectBox option'), function(ele) {
   return ele.value; 
});

Ответ 10

Для этого можно использовать следующий код:

var assignedRoleId = new Array();
$('#RolesListAssigned option').each(function(){
    assignedRoleId.push(this.value);
});

Ответ 11

Для опции multiselect:

$('#test').val() возвращает список выбранных значений. $('#test option').length возвращает общее количество опций (оба выбраны и не выбраны)

Ответ 12

Это простой скрипт с jQuery:

var items = $("#IDSELECT > option").map(function() {
    var opt = {};
    opt[$(this).val()] = $(this).text();
    return opt;
}).get();
var selectvalues = [];

for(var i = 0; i < items.length; i++) {
    for(key in items[i]) {


        var id = key;
        var text = items[i][key];

        item = {}
        item ["id"] = id;
        item ["text"] = text;

        selectvalues.push(item);

    }
}
console.log(selectvalues);
copy(selectvalues);
<select>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>

Ответ 13

$("input[type=checkbox][checked]").serializeArray();

Или:

$(".some_class[type=checkbox][checked]").serializeArray();

Чтобы увидеть результаты:

alert($("input[type=checkbox][checked]").serializeArray().toSource());

Ответ 14

Если вы ищете все варианты с некоторым выделенным текстом, то код ниже будет работать.

$('#test').find("select option:contains('B')").filter(":selected");

Ответ 15

Вот простой пример в jquery для получения всех значений, текстов или значения выбранного элемента или текста выбранного элемента

printOptionValues = () => {

  $('#nCS1 > option').each((index, obj) => {
    console.log($(obj).val());
  })

}

printOptionTexts = () => {
  $('#nCS1 > option').each((index, obj) => {
    console.log($(obj).text());
  })
}

printSelectedItemText = () => {
  console.log($('#nCS1 option:selected').text());
}

printSelectedItemValue = () => {
  console.log($('#nCS1 option:selected').val());
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select size="1" id="nCS1" name="nCS1" class="form-control" >
					<option value="22">Australia</option>
          <option value="23">Brunei</option>
          <option value="33">Cambodia</option>
          <option value="32">Canada</option>
          <option value="27">Dubai</option>
          <option value="28">Indonesia</option>
          <option value="25">Malaysia</option>				
</select>
<br/>
<input type='button' onclick='printOptionValues()' value='print option values' />
<br/>
<input type='button' onclick='printOptionTexts()' value='print option texts' />
<br/>
<input type='button' onclick='printSelectedItemText()' value='print selected option text'/>
<br/>
<input type='button' onclick='printSelectedItemValue()' value='print selected option value' />