我正在使用以下代码,为什么它不起作用?
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">
因为eq()
使用基于 0 的索引(即,如果您只有其中一个,因为 id 是不同的,所以您应该选择数组的末尾。eq(0)
应该可以)。
但是,如果您有一个 id,为什么还要进行复杂的选择呢?为什么不只是$("#mod1radio")
?
此外,如评论中所述,attr()
已弃用,您应该使用prop()
只有输入。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);