1

選択ウィジェットの選択されたインデックスの取得に問題があります。ここに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 を使用しています

ありがとう!

4

3 に答える 3

1

これは簡単な問題です:-

  • $listaReここにjQueryオブジェクトがあります
  • jQueryオブジェクトには次のようなプロパティはありませんselectedIndex

したがって、次のいずれかを実行できます。

$listaRe.on('change', function () {
    console.log("Index: " + $listaRe[0].selectedIndex);
});

デモ:フィドル

またはこれ:-

$listaRe.on('change', function () {
    console.log("Index: " + $listaRe.prop("selectedIndex"));
});

デモ:フィドル

問題を解決します。

于 2013-10-21T06:04:39.393 に答える
1

.onメソッドを使用してみてください。作業コードは次のとおりです。

$('#resultados').on('change','#listaResultados',function(){
alert($('option:selected',$(this)).index());
});

ここで動作するデモを確認してください: http://jsfiddle.net/rhyC5/

于 2013-10-21T06:00:15.607 に答える
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"));
        });
 })
于 2013-10-21T05:55:54.640 に答える