小编典典

使用 jQuery 获取所选选项的索引

all

<select>我对如何从 HTML项目中获取所选选项的索引有点困惑。

页面上,描述了两种方法。但是,两者总是返回-1。这是我的 jQuery
代码:

$(document).ready(function(){
    $("#dropDownMenuKategorie").change(function(){
        alert($("#dropDownMenuKategorie option:selected").index());
        alert($("select[name='dropDownMenuKategorie'] option:selected").index());
    });
});

并在 html

(...)
<select id="dropDownMenuKategorie">
    <option value="gastronomie">Gastronomie</option>
    <option value="finanzen">Finanzen</option>
    <option value="lebensmittel">Lebensmittel</option>
    <option value="gewerbe">Gewerbe</option>
    <option value="shopping">Shopping</option>
    <option value="bildung">Bildung</option>
</select>
(...)

为什么会有这种行为?在分配其方法时是否有可能select没有“准备好”
change()?此外,更改.index().val()返回正确的值,这让我更加困惑。


阅读 74

收藏
2022-07-04

共1个答案

小编典典

第一种方法似乎在我测试的浏览器中有效,但选项标签并不真正对应于所有浏览器中的实际元素,因此结果可能会有所不同。

只需使用selectedIndexDOM 元素的属性:

alert($("#dropDownMenuKategorie")[0].selectedIndex);

更新:

自 1.6 版以来,jQuery 具有prop可用于读取属性的方法:

alert($("#dropDownMenuKategorie").prop('selectedIndex'));
2022-07-04