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



7 Answers

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

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

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

Я просто хочу получить их ценности, а не текст.




Некоторые ответы используют each , но map - лучшая альтернатива здесь. ИМХО:

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

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

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




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

Хотя, ПРАВИЛЬНЫЙ способ - установить свойство DOM элемента, например:

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



Это #myselectbox значения параметра #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();});



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

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



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

Или же:

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

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

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



Это простой скрипт с 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>



Related