$('#mySelectBox option').each(function() {
if ($(this).isChecked())
alert('this option is selected');
else
alert('this is not');
});
どうやら、isChecked
動作しません。私の質問は、これを行う適切な方法は何ですか? ありがとう。
$('#mySelectBox option').each(function() {
if ($(this).isChecked())
alert('this option is selected');
else
alert('this is not');
});
どうやら、isChecked
動作しません。私の質問は、これを行う適切な方法は何ですか? ありがとう。
アップデート
選択したオプションへのより直接的な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]が機能しない
選択したオプションは次の方法で取得できます。
$('#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
に慣れていない、または慣れていない場合はis()
、 の値を確認できますprop("selected")
。
$('#mySelectBox option').each(function() {
if ($(this).prop("selected") == true) {
// do something
} else {
// do something
}
});
編集:
@gdoron がコメントで指摘したように、オプションの選択されたプロパティにアクセスするためのより高速で最も適切な方法は、DOM セレクターを使用することです。これは、このアクションを表示するフィドルの更新です。
if (this.selected == true) {
同様に機能するようです!ありがとうグドロン。
使用する
$("#mySelectBox option:selected");
特定のオプションかどうかをテストするにはmyoption
:
if($("#mySelectBox option:selected").text() == myoption){
//...
}
特定の値のオプションの選択状態を確認する必要がある場合:
$('#selectorId option[value=YOUR_VALUE]:selected')
私の場合、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;
}
});