111

次のコードが機能します。

$("#select-id").change(function(){
  var cur_value = $('#select-id option:selected').text();
  . . .
});

2 行目を次のようにリファクタリングする方法:

var cur_value = $(this).***option-selected***.text();

何に使うの***option-selected***

4

9 に答える 9

132

選択した値について:$(this).val()

選択したオプション要素が必要な場合は、$("option:selected", this)

于 2012-04-04T13:13:35.027 に答える
121
 $(this).find('option:selected').text();
于 2012-04-04T13:12:47.343 に答える
61

私の意見では、ドロップダウンの onchange イベントで選択したオプションを取得するための最良かつ最短の方法:

$('option:selected',this);

値属性を取得するには:

$('option:selected',this).attr('value');

タグ間の表示部分を取得するには:

$('option:selected',this).text();

あなたのサンプルでは:

$("#select-id").change(function(){
  var cur_value = $('option:selected',this).text();
});
于 2014-12-12T10:00:24.420 に答える
47
var cur_value = $('option:selected',this).text();
于 2016-04-03T03:16:21.387 に答える
14

これは機能するはずです:

$(this).find('option:selected').text();
于 2012-04-04T13:12:48.420 に答える
9

を使用findして、現在の jQuery オブジェクトが指すノードの子孫である、選択されたオプションを探すことができます。

var cur_value = $(this).find('option:selected').text();

これは直系の子である可能性が高いため、.children代わりに以下を使用することをお勧めします。

var cur_value = $(this).children('option:selected').text();
于 2012-04-04T13:13:46.203 に答える
7
var cur_value = $(this).find('option:selected').text();

optionあなたの直接の子である可能性が高いので、次のselectものも使用できます。

var cur_value = $(this).children('option:selected').text();

http://api.jquery.com/find/

于 2012-04-04T13:13:07.797 に答える
0

最良の推測:

var cur_value = $('#select-id').children('option:selected').text();

この場合、私は子供の方が好きです。なぜなら、あなたは DOM ツリーの 1 つのブランチだけを下っていることを知っているからです...

于 2012-04-04T13:13:46.843 に答える