次のコードを使用していますが、なぜ機能しないのですか?
javascript:$('input[id=mod1radio]:eq(1)').attr('checked', 'checked');
と
<input id="mod1radio" type="radio" name="group1" value="24">
次のコードを使用していますが、なぜ機能しないのですか?
javascript:$('input[id=mod1radio]:eq(1)').attr('checked', 'checked');
と
<input id="mod1radio" type="radio" name="group1" value="24">
0ベースのインデックスを使用するためeq()
(つまり、IDが異なるため、インデックスが1つしかない場合は、配列の最後から選択する必要があります。機能するeq(0)
はずです)。
しかし、IDを持っている場合、とにかくその複雑な選択を行うのはなぜですか?なぜだけではないの$("#mod1radio")
ですか?
また、コメントで述べられているように、attr()
非推奨です、あなたは使用する必要がありますprop()
入力のみです。eq(1)
2番目のものを選択します。@charlietflは、jQuery>=バージョン1.6prop()
の代わりに使用することを提案しています。attr()
jQuery 1.6以降、.attr()メソッドは、設定されていない属性に対して未定義を返します。さらに、.attr()は、プレーンオブジェクト、配列、ウィンドウ、またはドキュメントでは使用しないでください。DOMプロパティを取得して変更するには、.prop()メソッドを使用します。
IDmod1radio
は一意である必要があるため、
$('#mod1radio').prop('checked', true);
JSFiddle http://jsfiddle.net/mFkQQ/3/
mod1radio
代わりにクラスにする必要がある場合は、
$('.mod1radio:eq(0)').prop('checked', true);