165
$('#mySelectBox option').each(function() {
    if ($(this).isChecked())
       alert('this option is selected');
     else
       alert('this is not');
});

どうやら、isChecked動作しません。私の質問は、これを行う適切な方法は何ですか? ありがとう。

4

12 に答える 12

292

アップデート

選択したオプションへのより直接的なjQueryメソッドは次のようになります。

var selected_option = $('#mySelectBox option:selected');

質問に答えること.is(':selected')はあなたが探しているものです:

$('#mySelectBox option').each(function() {
    if($(this).is(':selected')) ...

それを行うための非jQuery(おそらくベストプラクティス)の方法は次のようになります。

$('#mySelectBox option').each(function() {
    if(this.selected) ...

ただし、選択した値を探しているだけの場合は、次のことを試してください。

$('#mySelectBox').val()

選択した値のテキストを探している場合は、次のようにします。

$('#mySelectBox option').filter(':selected').text();

チェックアウト:http ://api.jquery.com/selected-selector/

次回は重複するSOの質問を探します。

現在選択されているオプションを取得する か 、選択されたオプションを設定する、jQueryで$(this)選択されたオプションを取得する方法は? または option[selected=true]が機能しない

于 2012-04-18T16:20:08.280 に答える
26

選択したオプションは次の方法で取得できます。

$('#mySelectBox option:selected')...

ライブデモ

ただし、すべてのオプションを繰り返したい場合は、存在しないオプションのthis.selected代わりにそれを実行してください。this.isChecked

$('#mySelectBox option').each(function() {
    if (this.selected)
       alert('this option is selected');
     else
       alert('this is not');
});

ライブデモ

アップデート:

あなたはこれを使うことを提案するたくさんの答えを得ました:

$(this).is(':selected')まあ、それははるかに速くそして簡単に行うことができるthis.selectedので、なぜあなたはそれをネイティブのDOM要素メソッドではなく使用する必要があるのですか?!

タグ情報DOMのプロパティと関数を知るを読むjQuery

于 2012-04-18T16:23:03.887 に答える
5

に慣れていない、または慣れていない場合はis()、 の値を確認できますprop("selected")

ここに見られるように

$('#mySelectBox option').each(function() {
    if ($(this).prop("selected") == true) {
       // do something
    } else {
       // do something
    }
});​

編集

@gdoron がコメントで指摘したように、オプションの選択されたプロパティにアクセスするためのより高速で最も適切な方法は、DOM セレクターを使用することです。これは、このアクションを表示するフィドルの更新です。

if (this.selected == true) {

同様に機能するようです!ありがとうグドロン。

于 2012-04-18T16:25:12.037 に答える
2

使用する

 $("#mySelectBox option:selected");

特定のオプションかどうかをテストするにはmyoption

 if($("#mySelectBox option:selected").text() == myoption){
          //...
 }
于 2012-04-18T16:30:32.110 に答える
1

特定の値のオプションの選択状態を確認する必要がある場合:

$('#selectorId option[value=YOUR_VALUE]:selected')
于 2018-10-05T00:10:08.477 に答える
0

私の場合、selected が常に true である理由がわかりません。したがって、私が思いつくことができた唯一の方法は次のとおりです。

var optionSelected = false;
$( '#select_element option' ).each( function( i, el ) {
    var optionHTMLStr = el.outerHTML;

    if ( optionHTMLStr.indexOf( 'selected' ) > 0 ) {
        optionSelected = true;
        return false;
    }
});
于 2014-06-04T11:58:10.943 に答える