Как я могу получить все варианты выбора через jQuery, передав его ID?
Я ищу только их значения, а не текст.
Как я могу получить все варианты выбора через jQuery, передав его ID?
Я ищу только их значения, а не текст.
Использование:
$("#id option").each(function()
{
// Add $(this).val() to your list
});
Я не знаю jQuery, но я знаю, что если вы получите элемент select, он содержит объект "options".
var myOpts = document.getElementById('yourselect').options;
alert(myOpts[0].value) //=> Value of the first option
$.map, вероятно, самый эффективный способ сделать это.
var options = $('#selectBox option');
var values = $.map(options ,function(option) {
return option.value;
});
Вы можете добавить параметры изменения в $('#selectBox option:selected'), если хотите только те, которые были выбраны.
Первая строка выбирает все флажки и помещает их элемент jQuery в переменную. Затем мы используем функцию .map jQuery для применения функции к каждому из элементов этой переменной; все, что мы делаем, это возврат значения каждого элемента, поскольку это все, о чем мы заботимся. Поскольку мы возвращаем их внутри функции map, она фактически строит массив значений, как запрошено.
В некоторых ответах используется each, но map - лучшая альтернатива здесь IMHO:
$("select#example option").map(function() {return $(this).val();}).get();
В jQuery есть (по крайней мере) две функции map. Ответ Томаса Петерсена использует "Utilities/jQuery.map"; этот ответ использует "Traversing/map" (и, следовательно, немного более чистый код).
Это зависит от того, что вы собираетесь делать со значениями. Если вы, скажем, хотите вернуть значения из функции, map, вероятно, является лучшей альтернативой. Но если вы собираетесь использовать значения непосредственно, вы, вероятно, захотите each.
$('select#id').find('option').each(function() {
alert($(this).val());
});
$("#id option").each(function()
{
$(this).prop('selected', true);
});
Хотя способ CORRECT - установить свойство DOM элемента, например:
$("#id option").each(function(){
$(this).attr('selected', true);
});
Вы можете взять все свои "выбранные значения" по имени флажков и представить их в укусе, разделенном ",".
Хороший способ сделать это - использовать jQuery $.map():
var selected_val = $.map($("input[name='d_name']:checked"), function(a)
{
return a.value;
}).join(',');
alert(selected_val);
Это поместит значения параметров #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();});
Самый эффективный способ сделать это - использовать $.map()
Пример:
var values = $.map($('#selectBox option'), function(ele) {
return ele.value;
});
Для этого можно использовать следующий код:
var assignedRoleId = new Array();
$('#RolesListAssigned option').each(function(){
assignedRoleId.push(this.value);
});
Для опции multiselect:
$('#test').val() возвращает список выбранных значений.
$('#test option').length возвращает общее количество опций (оба выбраны и не выбраны)
Это простой скрипт с 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>
$("input[type=checkbox][checked]").serializeArray();
Или:
$(".some_class[type=checkbox][checked]").serializeArray();
Чтобы увидеть результаты:
alert($("input[type=checkbox][checked]").serializeArray().toSource());
Если вы ищете все варианты с некоторым выделенным текстом, то код ниже будет работать.
$('#test').find("select option:contains('B')").filter(":selected");
Вот простой пример в 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' />