Ответ 1
Как насчет чего-то типа:
var values = [];
$('#my_dropdown option').each(function() {
values.push( $(this).attr('value') );
});
У меня есть dropdown <select>
с id my_dropdown
. Я разрешаю multi-select. Я знаю, как вытащить выбранные значения с помощью jquery:
var values = $('#my_dropdown').val();
Это приведет к возврату массива значений, если я выберу несколько. Мне также нужно получить все значения в раскрывающемся списке независимо от того, что выбрано. Как я могу использовать jquery аналогично, чтобы получить все значения в раскрывающемся списке, учитывая этот id?
Как насчет чего-то типа:
var values = [];
$('#my_dropdown option').each(function() {
values.push( $(this).attr('value') );
});
Похож:
var values = $('#my_dropdown').children('option').map(function(i, e){
return e.value || e.innerText;
}).get();
Смотрите это в действии: http://www.jsfiddle.net/YjC6y/16/
Ссылка: . map()
Пример: http://jsfiddle.net/FadHu/
var opts = $('#my_dropdown')[0].options;
var array = $.map(opts, function( elem ) {
return (elem.value || elem.text);
});
Элемент <select>
имеет список опций в свойстве options
. Затем используйте $.map()
, который возвращает массив, чтобы получить либо свойство value
, либо text
.
(Обратите внимание, что $.map()
ведет себя немного иначе, чем $(element).map()
. Может быть немного сложно.)