为什么selectedIndex属性不返回选中的选项?

时间:2017-01-19 19:51:26

标签: jquery html-select

我正在使用JQuery 1.12。我在使用JQuery获取菜单项的选定索引时遇到了麻烦。我有这个HTML:

<select class="selectField selectMenu form-control" name="user[address_attributes][state_id]" id="user_address_attributes_state_id"><option value="">Select State</option>
    <option value="3526">Alabama</option>
    <option value="3556">Alaska</option>
    <option selected="selected" value="3547">Arizona</option>
    <option value="3510">Arkansas</option>
    <option value="3542">California</option>
    <option value="3543">Colorado</option>
    <!-- rest omitted for brevity -->
</select>

您可以看到“亚利桑那州”选项旁边填充了“已选择”。但是,当我尝试使用JQuery查找选择的索引时,它只返回零...

$('#user_address_attributes_state_id')[0].selectedIndex
0

但是,当我按其值选择选项时,我确实看到它被选中...

$('#user_address_attributes_state_id option[value="3547"]').attr("selected")
"selected"

您可以看到我的HTML中没有选择任何其他内容。如何使用jQuery准确返回菜单的选定索引?

1 个答案:

答案 0 :(得分:2)

获取所选选项:

var selected_option =  $('#user_address_attributes_state_id option:selected');

和选定的索引:

 var selected_index = $('#user_address_attributes_state_id option:selected').index();

并按value="3547"选择选项:

 $('#user_address_attributes_state_id').val(3547);