1

我正在使用以下代码,为什么它不起作用?

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

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

2 回答 2

2

因为eq()使用基于 0 的索引(即,如果您只有其中一个,因为 id 是不同的,所以您应该选择数组的末尾。eq(0)应该可以)。

但是,如果您有一个 id,为什么还要进行复杂的选择呢?为什么不只是$("#mod1radio")

此外,如评论中所述,attr()已弃用,您应该使用prop()

于 2012-12-28T00:26:48.323 回答
0

只有输入。eq(1)会选择第二个。@charlietfl 建议使用jQuery >= 1.6 版prop()而不是。attr()

从 jQuery 1.6 开始,.attr() 方法为尚未设置的属性返回 undefined。此外,.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 回答