Как я могу получить все параметры выбора через jQuery, передав его идентификатор?
Я только ищу их значения, а не текст.
Как я могу получить все параметры выбора через jQuery, передав его идентификатор?
Я только ищу их значения, а не текст.
Ответы:
Использование:
$("#id option").each(function()
{
// Add $(this).val() to your list
});
$.mapгораздо более элегантный и менее подвержен ошибкам (см. ниже).
$('#id option').map((index, option) => option.value): обратите внимание, как обратная сигнатура обратного вызова по сравнению с «ванильной» mapфункцией JS ( (item, index) =>)
Я не знаю 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, фактически создается массив значений в соответствии с запросом.
$('#selectBox').val()вернет массив выбранных значений.
Некоторые ответы использует each, но mapэто лучшая альтернатива здесь ИМХО:
$("select#example option").map(function() {return $(this).val();}).get();
В mapjQuery есть (как минимум) две функции. В ответе Томаса Петерсена используется «Utilities / jQuery.map»; в этом ответе используется «Обход / карта» (и, следовательно, немного более чистый код).
Это зависит от того, что вы собираетесь делать со значениями. Если, скажем, вы хотите вернуть значения из функции, mapвозможно, это лучшая альтернатива. Но если вы собираетесь использовать значения напрямую, вы, вероятно, хотите each.
get()возвращаемый объект очень часто работает с базовым массивом». - api.jquery.com/map
text()вместо val(). Спасибо ! (Я заставил вас пройти 1000 ;->)
$('select#id').find('option').each(function() {
alert($(this).val());
});
$("#id option").each(function()
{
$(this).prop('selected', true);
});
Хотя, ПРАВИЛЬНЫЙ способ - установить свойство DOM элемента, например, так:
$("#id option").each(function(){
$(this).attr('selected', true);
});
Это поместит значения параметров #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(domelts, elt=> $(elt).val())
Вы можете взять все ваши "выбранные значения" по имени флажков и представить их в строке, отделенной ",".
Хороший способ сделать это - использовать jQuery $ .map ():
var selected_val = $.map($("input[name='d_name']:checked"), function(a)
{
return a.value;
}).join(',');
alert(selected_val);
selectа optionне о флажках.
Самый эффективный способ сделать это - использовать $.map()
Пример:
var values = $.map($('#selectBox option'), function(ele) {
return ele.value;
});
Для этого вы можете использовать следующий код:
var assignedRoleId = new Array();
$('#RolesListAssigned option').each(function(){
assignedRoleId.push(this.value);
});
Для варианта с множественным выбором:
$('#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>
Вот простой пример в jquery для получения всех значений, текстов или значения выбранного элемента или текста выбранного элемента
$('#nCS1 > option').each((index, obj) => {
console.log($(obj).val());
})
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' />
$("input[type=checkbox][checked]").serializeArray();
Или:
$(".some_class[type=checkbox][checked]").serializeArray();
Чтобы увидеть результаты:
alert($("input[type=checkbox][checked]").serializeArray().toSource());
Короткий путь
$(() => {
$('#myselect option').each((index, data) => {
console.log(data.attributes.value.value)
})})
или
export function GetSelectValues(id) {
const mData = document.getElementById(id);
let arry = [];
for (let index = 0; index < mData.children.length; index++) {
arry.push(mData.children[index].value);
}
return arry;}