Javascript 无法在“选择”中获取所有选项

Javascript 无法在“选择”中获取所有选项,javascript,jquery,Javascript,Jquery,我正在尝试在select中使用all选项,这是html结构: <select id='selected-service' size='5'> <option value='13'>Hair</option> <option value='14'>Color</option> </select> 但是我得到了一个空数组,我做错了什么?您试图只查找选定的值,默认情况下没有任何选定值 var available_serv

我正在尝试在select中使用all选项,这是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').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);
});
:selected查找选定的选项。Find,没有第二个参数

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

console.log(available_services);

而您需要在选择中循环选择选项。。您应该添加多个属性以进行选择

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

没有选择任何内容,并且选择器错误..find没有接受2个参数的重载。您的代码仍然可以工作,只是没有必要。$'selected-service'.val有什么问题?可以使用另一个选项代替查找和映射。\u services=$'option:selected',this.attr'value'@我一点也不怀疑这个事实。感谢您提供此选项。使用事件处理程序上的.trigger'change'获取loadDemo页上的选项列表:作为旁注,使用子选择器作为选项始终是select或$'select option'的直接子选项我正在尝试获取select not selected options中的所有可用选项,var名称available\u services也表示相同的情况。@t这取决于他对available的意思。。正如我们在他的代码中看到的,他使用了:selected,所以他可能需要一些东西来添加它。。这就是为什么我在回答这个问题时要依赖它。。我知道“可用”意味着在“选择”中获取选项的所有值
<select id='selected-service' size='5' multiple>
var available_services = []
$('#selected-service > option:selected').each(function ()
{
         available_services.push($(this).attr('value'));
});

console.log(available_services);