在下拉选择菜单中获取所有值?

时间:2011-04-25 19:04:55

标签: javascript jquery html

我知道如何使用jquery在html下拉菜单中获取所选值。

但是,我想在下拉列表中获取所有值的数组(即,包含<option>中每个<select>标记的值的数组),无论选择的是什么。这样做的正确方法是什么?

3 个答案:

答案 0 :(得分:6)

非常简单,使用一些选择器和$.each

$('select#id_of_select_if_you_want option').each(function(idx, val)
{
    $(val).val(); // here's the value
    $(val).html(); // here's the display text
});

答案 1 :(得分:1)

要根据一组元素获取某个数组,请使用$.map()

var arrayOfValues = $("#mySelect option").map(function() { return this.value; });

答案 2 :(得分:0)

我无法对gilly3发表评论(有声望的人可以提供帮助吗?)。他的回答会给你一个对象字面值,而不是数组。

如果你想要一个值数组,你可以像他建议的那样做一个地图,但是你需要将值附加到列表中。这是我的版本(我确信它可以改进):

var all_values = [];
$('#dropdown option').map( function() { 
    if (this.value.length) { 
       all_values.push(this.value)
    }
});

编辑:

看起来,您可以使用gilly3的答案,但是,如果您想将return作为数组实际使用,则需要附加一个.get()方法。

$('#dropdown option').map( function() {return this.value}).get();