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

$sUrl = 'http://www.linktopage.com/login/';
    $params = array('http' => array(
    'method' => 'POST',
'content' => 'username=admin195&password=d123456789'
));

$ctx = stream_context_create($params);
$fp = @fopen($sUrl, 'rb', false, $ctx);
if (!$fp)
{
throw new Exception("Problem with $sUrl, $php_errormsg");
}

$response = @stream_get_contents($fp);
if ($response === false) 
{
throw new Exception("Problem reading data from $sUrl, $php_errormsg");
}
388
задан Peter Mortensen 21 March 2015 в 09:32
поделиться

6 ответов

Использование:

$("#id option").each(function()
{
    // Add $(this).val() to your list
});

.each () | документация API

jQuery
592
ответ дан Black 21 March 2015 в 19:32
поделиться

Некоторое использование ответов each, но map лучшая альтернатива здесь, по моему скромному мнению:

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

существуют (по крайней мере) два map функции в jQuery. Ответ Thomas Petersen использует "Utilities/jQuery.map"; этот ответ "Пересекающее/отображенный" использование (и поэтому немного более чистый код).

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

69
ответ дан Peter Mortensen 21 March 2015 в 19:32
поделиться
$('select#id').find('option').each(function() {
    alert($(this).val());
});
47
ответ дан Peter Mortensen 21 March 2015 в 19:32
поделиться
  • 1
    Отмеченный имеет ' low-quality'. можно ли разработать ответ? Какая-либо подсказка, где Вы получили эту идею, информацию? Любой ' bug-report' ссылка? – Milche Patern 30 July 2013 в 14:32

Это поместит значения опции #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();});
15
ответ дан Aliaksandr Sushkevich 21 March 2015 в 19:32
поделиться

Я не знаю jQuery, но я действительно знаю, что, если Вы получаете избранный элемент, он содержит объект 'опций'.

var myOpts = document.getElementById('yourselect').options;
alert(myOpts[0].value) //=> Value of the first option
160
ответ дан Peter Mortensen 21 March 2015 в 19:32
поделиться

Короткий путь

$(() => {
$('#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;}
0
ответ дан 22 November 2019 в 23:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: