<select>我对如何从 HTML项目中获取所选选项的索引有点困惑。
<select>
在此页面上,描述了两种方法。但是,两者总是返回-1。这是我的 jQuery 代码:
-1
$(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()返回正确的值,这让我更加困惑。
select
change()
.index()
.val()
第一种方法似乎在我测试的浏览器中有效,但选项标签并不真正对应于所有浏览器中的实际元素,因此结果可能会有所不同。
只需使用selectedIndexDOM 元素的属性:
selectedIndex
alert($("#dropDownMenuKategorie")[0].selectedIndex);
自 1.6 版以来,jQuery 具有prop可用于读取属性的方法:
prop
alert($("#dropDownMenuKategorie").prop('selectedIndex'));