次のコードは機能します。
$("#select-id").change(function(){
var cur_value = $('#select-id option:selected').text();
. . .
});
2行目を次のようにリファクタリングする方法:
var cur_value = $(this).***option-selected***.text();
何に使うの***option-selected***
?
回答:
選択したオプションを取得するためのドロップダウンのonchangeイベントに対する私の意見では最良かつ最短の方法:
$('option:selected',this);
value属性を取得するには:
$('option:selected',this).attr('value');
タグ間の表示部分を取得するには:
$('option:selected',this).text();
あなたのサンプルでは:
$("#select-id").change(function(){
var cur_value = $('option:selected',this).text();
});
var cur_value = $('option:selected',this).text();
これはうまくいくはずです:
$(this).find('option:selected').text();
var cur_value = $(this).find('option:selected').text();
option
はselect
あなたの直接の子である可能性が高いので、以下も使用できます。
var cur_value = $(this).children('option:selected').text();
option-selected
引用符なしでどこで入手できますか...?
find('option:selected')
空の文字列を返します。jQueryのどのバージョンが必要ですか?1.6.1で作業しています。children('option:selected')
動作します。
option:selected
v1.0から使用されていますapi.jquery.com/selected-selector
$("option:selected", this)
。上記のように試してみましたが、問題がありました。ボタンクリックを使用して、選択したオプション要素のテキストを別のdivに追加していましたが、ボタンをクリックすると、選択した要素が実際に変更されました。これを使って。