Jquery получает все выпадающие значения

У меня есть dropdown <select> с id my_dropdown. Я разрешаю multi-select. Я знаю, как вытащить выбранные значения с помощью jquery:

var values = $('#my_dropdown').val();

Это приведет к возврату массива значений, если я выберу несколько. Мне также нужно получить все значения в раскрывающемся списке независимо от того, что выбрано. Как я могу использовать jquery аналогично, чтобы получить все значения в раскрывающемся списке, учитывая этот id?

Ответ 1

Как насчет чего-то типа:

var values = [];
$('#my_dropdown option').each(function() { 
    values.push( $(this).attr('value') );
});

Ответ 2

Похож:

var values = $('#my_dropdown').children('option').map(function(i, e){
    return e.value || e.innerText;
}).get();

Смотрите это в действии: http://www.jsfiddle.net/YjC6y/16/

Ссылка: . map()

Ответ 3

Пример: 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(). Может быть немного сложно.)