1

HTML

<select id="selectDepartment">
  <option value="1">120</option>
  <option value="2">20</option>
  <option value="3">140</option>
  <option value="4">4120</option>
  <option value="5">560</option>
  <option value="6">451</option>
  <option value="7">310</option>
  <option value="8">656</option>
  <option value="9">444</option>
  <option value="10">555</option>
  <option value="11">2560</option>
  <option value="12">450</option>
</select>

jQuery

$("#selectDepartment").change( function() {

alert($("select option:selected").val()); 

});

上記の関数は、オプションのいずれかを選択すると、アラート時に常に値1を表示します

4

2 に答える 2

5

選択オプションを見つける方法はあいまいです。あなたは「すべてをつかむ」と言っています<select>:select次に、それぞれ (ページ上のすべての ) から ed オプションを取得し<select>ます。続け.val()て、一番上から最初の値を取ります。

簡単に言えば、ページで最初 <select>に見つかった値の選択された値を常に取得しています。#selectDepartmentが最初でないと仮定すると<select>、値は決して変わりません。

現在の<Select>使用範囲内にスコープを維持するようにしてくださいthis:

$('#selectDepartment').change(function(){
  var selopt = $('option:selected',this);
});

<select>をトリガーした内にスコープを指定していることに注意してください.change()val()また、これは簡単に機能するため、実際には必要ないことに注意してください。

var selopt = $(this).val();

面倒な作業は jQuery に任せましょう。option:selectedその特定の要素のスタイリングを制御したい場合、または複数選択を使用していてさらに制御したい場合にのみ必要です。

于 2012-04-17T18:34:31.267 に答える
0

次のようなことができます。

$("#selectDepartment").change( function() {

     var selected = $(this).find(":selected");

});
于 2012-04-17T18:38:33.713 に答える