回答:
いかがですか
$('select>option:eq(3)').attr('selected', true);
http://www.jsfiddle.net/gaby/CWvwn/の例
jqueryの最新バージョンでは、.prop()
代わりに.attr()
$('select>option:eq(3)').prop('selected', true);
selectElement.selectedIndex = index;
ジャックの意味です。
selectedIndex
、multiple
属性が使用されている場合、複数選択には使用できません。そして、選択された要素を設定する通常の(html)方法は、要素のselected
属性ですoption
。
selected
対応する各options
要素のプロパティをtrue
(およびオプションで残りをfalse
明示的に)設定することです。複数選択は、実際にはかなり厄介です:)
onchange
値がプログラムによって変更されても、イベントはトリガーされません。.trigger('change')
最後にa を追加して、イベントを発生させることもできます(ただし、実際に変更された値に関係なく発生します)
ソリューション:
$("#element-id").val('the value of the option');
selected
HTMLでオプションを設定しません。
HTMLのselect要素にはselectedIndex
、特定のオプションを選択するために書き込むことができるプロパティがあります。
$('select').prop('selectedIndex', 3); // select 4th option
プレーンJavaScriptを使用すると、これは次の方法で実現できます。
// use first select element
var el = document.getElementsByTagName('select')[0];
// assuming el is not null, select 4th option
el.selectedIndex = 3;
.trigger()
そのために公開しますが、すでにコードでこれを行っているので、変更ハンドラーを自分で呼び出すのも簡単です。
特定の値を持つオプションを選択する場合は、次のコードを使用します。
$('select>option[value="' + value + '"]').prop('selected', true);
eq()よりもnth-child()の方が好まれます。0ベースではなく1ベースのインデックスを使用するためです。
//selects the 2nd option
$('select>option:nth-child(2)').attr('selected', true);