次のコードが機能します。
$("#select-id").change(function(){
var cur_value = $('#select-id option:selected').text();
. . .
});
2 行目を次のようにリファクタリングする方法:
var cur_value = $(this).***option-selected***.text();
何に使うの***option-selected***
?
次のコードが機能します。
$("#select-id").change(function(){
var cur_value = $('#select-id option:selected').text();
. . .
});
2 行目を次のようにリファクタリングする方法:
var cur_value = $(this).***option-selected***.text();
何に使うの***option-selected***
?
選択した値について:$(this).val()
選択したオプション要素が必要な場合は、$("option:selected", this)
$(this).find('option:selected').text();
私の意見では、ドロップダウンの onchange イベントで選択したオプションを取得するための最良かつ最短の方法:
$('option:selected',this);
値属性を取得するには:
$('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();
を使用find
して、現在の jQuery オブジェクトが指すノードの子孫である、選択されたオプションを探すことができます。
var cur_value = $(this).find('option:selected').text();
これは直系の子である可能性が高いため、.children
代わりに以下を使用することをお勧めします。
var cur_value = $(this).children('option:selected').text();
var cur_value = $(this).find('option:selected').text();
option
あなたの直接の子である可能性が高いので、次のselect
ものも使用できます。
var cur_value = $(this).children('option:selected').text();
最良の推測:
var cur_value = $('#select-id').children('option:selected').text();
この場合、私は子供の方が好きです。なぜなら、あなたは DOM ツリーの 1 つのブランチだけを下っていることを知っているからです...