我在获取select小部件的选定索引时遇到问题。这是HTML
<div data-role="content" id="resultados">
<label for="select-choice-0" class="select">Resultados:</label>
<select name="select-choice-0" id="listaResultados"></select>
</div>
我以这种方式向窗口小部件动态添加选项(这可行):
$listaRe = $("#listaResultados");
$listaRe.html("");
for(i=0;i<results.length;i++){
$listaRe.append("<option value='"+i+"'>"+results[i]+"</option>");
}
// results is a predefined array
当我每次更改时尝试获取所选索引时,它始终打印“索引:0”:
$listaRe.change(function(){
console.log("Index: "+$listaRe.selectedIndex);
});
我正在使用jQuery 1.8.1和jQuery Moble 1.2.0
谢谢!
答案 0 :(得分:1)
尝试使用.on
方法。这是工作代码:
$('#resultados').on('change','#listaResultados',function(){
alert($('option:selected',$(this)).index());
});
点击此处查看工作演示:http://jsfiddle.net/rhyC5/
答案 1 :(得分:1)
这是一个简单的问题: -
$listaRe
这里是一个jQuery对象selectedIndex
所以,要么你可以这样做:
$listaRe.on('change', function () {
console.log("Index: " + $listaRe[0].selectedIndex);
});
演示:Fiddle
或者: -
$listaRe.on('change', function () {
console.log("Index: " + $listaRe.prop("selectedIndex"));
});
演示:Fiddle
解决问题。
答案 2 :(得分:0)
考虑结果长度为5:
$(document).ready(function () {
$listaRe = $("#listaResultados");
$listaRe.html("");
for (i = 0; i < 5; i++) {
$listaRe.append("<option value='" + i + "'>" + i + "</option>");
}
// results is a predefined array
$listaRe.change(function () {
console.log("Index: " + $listaRe.prop("selectedIndex"));
});
})