0

私は非常に単純なことをしようとしていますが、うまくいきません。私がやりたいのは、選択したオプションが変更されたときに、選択したオプションのテキストを取得することです。次のようになります。

<select id = "myselect">
  <option value = "1">One</option>
  <option value = "2">Two</option>
  <option value = "3">Three</option>
</select>

次にJavaScriptで:

$("#myselect").change(function () {
     var text = $(this).find("option[selected]").html();
     alert(text);
});

シンプルですよね?問題は、私がnullになっていることです。DOM を調べると、選択したオプションを変更しても、どのオプションの "selected" 属性も変更されないことがわかりました。通常、オプションを変更すると DOM が更新されませんか? 私は以前にこれをやったと確信しています。ここで何が欠けていますか?テストには FireFox バージョン 13.0.1 を使用しています。

4

5 に答える 5

3

これは jQuery を使用して行う必要があります。

$("#myselect").change(function () {
    var text = $(':selected',this).text();
    alert(text);
});​

jsFiddle の例

または、単純な JavaScript だけを使用する場合は、次のようにします。

document.getElementById('myselect').onchange = function() {
    alert(document.getElementById("myselect")[document.getElementById("myselect").selectedIndex].innerHTML);
}

jsFiddle の例

于 2012-07-30T18:58:26.943 に答える
2
$(this).find("option:selected").html();
于 2012-07-30T18:58:03.527 に答える
2

への変更

    var text = $(this).find("option:selected").html();
于 2012-07-30T18:58:38.690 に答える
2

:selectedセレクターを使用したい。ここで例を確認してください

$( '#myselect' ).change(function () {
    var text = $( this ).children( 'option:selected' ).text();
    alert( text );
});

ライブデモ: http://jsfiddle.net/xjhFf/

于 2012-07-30T18:57:00.733 に答える
0

selectedIndex属性を使用して、そのインデックスでアイテムを取得できます。

于 2012-07-30T18:57:34.650 に答える