首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用jQuery获取所选选项的索引

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

Stack Overflow用户
提问于 2012-11-26 08:00:48
回答 8查看 368.4K关注 0票数 190

我对如何从超文本标记语言<select>项中获取所选选项的索引感到有点困惑。

this页面上,描述了两种方法。但是,这两个函数总是返回-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()将返回正确的值,因此这是更让我困惑的地方。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2012-11-26 08:05:25

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

只需使用DOM元素的selectedIndex属性:

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

更新:

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

alert($("#dropDownMenuKategorie").prop('selectedIndex'));
票数 376
EN

Stack Overflow用户

发布于 2014-06-25 01:48:55

以Jquery方式解决此问题的好方法

$("#dropDownMenuKategorie option:selected").index()
票数 97
EN

Stack Overflow用户

发布于 2015-07-03 12:44:30

您可以使用.prop(propertyName)函数从jQuery对象中的第一个元素获取属性。

var savedIndex = $(selectElement).prop('selectedIndex');

这使您的代码保持在jQuery领域内,并且还避免了使用选择器来查找所选选项的其他选择。然后,您可以使用重载来恢复它:

$(selectElement).prop('selectedIndex', savedIndex);
票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13556941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档