1

次のコードを使用していますが、なぜ機能しないのですか?

javascript:$('input[id=mod1radio]:eq(1)').attr('checked', 'checked');

<input id="mod1radio" type="radio" name="group1" value="24">
4

2 に答える 2

2

0ベースのインデックスを使用するためeq()(つまり、IDが異なるため、インデックスが1つしかない場合は、配列の最後から選択する必要があります。機能するeq(0)はずです)。

しかし、IDを持っている場合、とにかくその複雑な選択を行うのはなぜですか?なぜだけではないの$("#mod1radio")ですか?

また、コメントで述べられているように、attr()非推奨です、あなたは使用する必要がありますprop()

于 2012-12-28T00:26:48.323 に答える
0

入力のみです。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);​

フィドルhttp://jsfiddle.net/mFkQQ/5/

于 2012-12-28T00:25:36.853 に答える