-2

jQuery:selectedが常に同じ値を返すという非常に奇妙な問題に直面しています。

たとえば、次のHTMLがあるとします。

<select class="some_select">
   <option value="0">Zero</option>
   <option value="1">One</option>
</select>

次に、このjQueryコードを$(document).ready()で実行します。

    $('.some_select').change(function() {
        alert($(this).attr('value'));
    });

上記の場合、アラートは常に選択されたオプションの適切な値を表示しますが、これを実行すると:

var type = $('.some_select :selected').attr('value');

このコードでは、どのオプションが選択されていても、アラートは常に「0」を返します。

私も試しました:

$('.some_select').find(':selected')

$('.some_select').filter(':selected')

また

$('.some_select option:selected')

助けてくれてありがとう!

4

3 に答える 3

1

tldrExplosionPillsのコメントに行きます。あなたが探しているコードは

$('.some_select').change(function() {
   console.log($(":selected").attr('value'));
});
于 2013-03-20T01:11:34.350 に答える
0

select要素にはvalue属性がないため、アラートは、選択したオプションの「適切な値」ではなく、アラートを送信します$(this).attr('value')undefined

ここで疑似クラスを使用する必要はありません:selected。selectのメソッドを使用して.val()、現在の値を取得します。

$('.some_select').change(function() {
    alert($(this).val());
});

これがデモンストレーションです:http://jsfiddle.net/qGuxt/

于 2013-03-20T01:18:49.377 に答える
0

これは、値が変更されたときに値を更新できるようにする必要があるためです.change(function(){..})。値が変更されたときに、他のコードスニペットは更新されません。それとも私は何かを誤解していますか?

于 2013-03-20T01:03:23.067 に答える