首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何获取select->option标签的索引

如何获取select->option标签的索引
EN

Stack Overflow用户
提问于 2009-11-30 07:00:56
回答 6查看 42.8K关注 0票数 18
<select id="sel">
<option value="123" selected="selected">text1</option>
<option value="44">text2</option>
<option value="882">text3</option>
...
</select>

如何使用jQuery获取所选选项的索引?可能是.index(subject),但所有的可能性都测试过了,都不起作用...

P.S.索引: value="123“=> 0,value="44”=> 1,...

谢谢

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-11-30 07:04:21

这样就可以了:

   $("#sel").attr("selectedIndex")
票数 3
EN

Stack Overflow用户

发布于 2012-07-17 08:31:01

只有鲍勃的第二个答案是正确的:

$("#sel")[0].selectedIndex

作品:http://jsfiddle.net/b9chris/wxeVN/1/

仅当用户(或浏览器的DOM还原)在页面加载后未更改所选选项时,才能使用.attr()http://jsfiddle.net/b9chris/wxeVN/

您可以将其实现为jQuery扩展,并在此过程中获得更多信息:

(function($) {
    $.fn.selectedOption = function() {
        var sel = this[0];
        return sel.options[sel.selectedIndex];
    };
})(jQuery)

$('button').click(function() {
    $('#output').text('selected index: ' + $('select').selectedOption().index);
});

http://jsfiddle.net/b9chris/wxeVN/102/

.selectedOption()返回的是实际的选项标记,因此您可以访问.index.value.text -这比通常情况下的索引更方便一些。

票数 17
EN

Stack Overflow用户

发布于 2014-01-30 05:08:52

在我写这篇文章的时候,两个排名靠前的答案(包括公认的答案)是不正确的,尽管他们在近五年前就指出了这一点。attr("selectedIndex")什么也不做,因为selectedIndex是实际DOM元素的属性,而不是HTML。您需要使用prop

$(this).prop('selectedIndex')

将此版本与错误版本进行比较的交互式演示:http://jsfiddle.net/uvwkD/

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1817079

复制
相关文章

相似问题

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