无法选择

时间:2015-11-20 18:46:33

标签: javascript jquery

我试图在select中提供所有选项,这是html结构:

<select id='selected-service' size='5'>
  <option value='13'>Hair</option>
  <option value='14'>Color</option>
</select>

var available_services = $('#selected-service').find('option:selected', this).map(function ()
{
         return this.value;
}).get();

console.log(available_services);

JSFIDDLE

但我得到一个空数组,我做错了什么?

3 个答案:

答案 0 :(得分:1)

您尝试仅查找选定的值,并且默认情况下没有选择任何值。

var available_services = $('#selected-service').find('option').map(function ()
{
     return this.value;
}).get();

console.log(available_services);

这将为您提供所有选择。

如果您需要在活动中执行此操作,请继续捕捉活动。

$('#selected-service').on('change', function(){
    var available_services = $(this).find("option:selected", this).map(function(){
        return this.value;
    }).get();
    console.log(available_services);
});

答案 1 :(得分:1)

:selected查找所选选项。查找,没有第二个参数。

var available_services = $('#selected-service').find('option').map(function(){
    return this.value;
}).get();

console.log(available_services);

答案 2 :(得分:1)

当你需要在select中循环选择选项时,你应该添加多个属性来选择

<select id='selected-service' size='5' multiple>

在js中你可以使用 .each();

var available_services = []
$('#selected-service > option:selected').each(function ()
{
         available_services.push($(this).attr('value'));
});

console.log(available_services);

Working Demo