<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,...
谢谢
发布于 2009-11-30 07:04:21
这样就可以了:
$("#sel").attr("selectedIndex")
发布于 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
-这比通常情况下的索引更方便一些。
发布于 2014-01-30 05:08:52
在我写这篇文章的时候,两个排名靠前的答案(包括公认的答案)是不正确的,尽管他们在近五年前就指出了这一点。attr("selectedIndex")
什么也不做,因为selectedIndex
是实际DOM元素的属性,而不是HTML。您需要使用prop
$(this).prop('selectedIndex')
将此版本与错误版本进行比较的交互式演示:http://jsfiddle.net/uvwkD/
https://stackoverflow.com/questions/1817079
复制相似问题