jQuery:使用attr()检查单选按钮不会';不行?
不确定这是否是jQuery1.4.2中的一个bug——我不明白为什么它不起作用 我需要检查一个单选按钮。我正在使用jQuery:使用attr()检查单选按钮不会';不行?,jquery,Jquery,不确定这是否是jQuery1.4.2中的一个bug——我不明白为什么它不起作用 我需要检查一个单选按钮。我正在使用attr({'checked':'checked'}),我还尝试了attr('checked':true)-没有一个会起作用。但是,如果我在同一个单选按钮上执行attr('title':'whatever'),并且没有任何其他更改,那么每次都可以 title属性和我缺少的checked属性之间是否存在一些模糊的差异?它们都是您日常使用的HTML属性。那么,为什么一个有效而另一个无效呢
attr({'checked':'checked'})
,我还尝试了attr('checked':true)
-没有一个会起作用。但是,如果我在同一个单选按钮上执行attr('title':'whatever')
,并且没有任何其他更改,那么每次都可以
title
属性和我缺少的checked
属性之间是否存在一些模糊的差异?它们都是您日常使用的HTML属性。那么,为什么一个有效而另一个无效呢
代码如下:
$('.formradiodiv').live('click', function() {
//remove checked radio btns
$('input', $(this).parents('#radiogroup')).each(function() {
$(this).removeAttr('checked');
});
$('input', $(this)).attr('checked', true);
});
编辑:好的,我想我明白了。很明显,这一直都在起作用,只是我的头暂时呆在图卡图卡土地或其他什么地方
我正在检查源代码,看看jQuery是否在我单击的单选按钮中添加了“checked”attr:在Firefox中,突出显示内容,右键单击>查看选择源。这样做通常会显示JavaScript对DOM所做的所有更改,我希望在源代码中看到该属性
一直以来,HTML单选按钮都是通过CSS隐藏的。这就是我首先需要它的原因——我正在用图像替换默认的单选按钮
因此,在源代码中,我没有看到单选按钮上的checked
属性,因此我假设它是jQuery不能正常工作的。但是,当我删除CSS规则并显示用于测试的按钮时,我发现它们确实得到了正确的检查。努夫说
非常感谢所有发表评论的人。我会投票支持你们的。
干杯('selector').attr('checked',true)代码>肯定有效
编辑我在您的问题中意识到,您使用对象表示法{'key':'value'}
,这将适用于.attr()
函数,但您省略了括号“{…}”。要修复您的示例,您需要$('selector').attr({'checked':true})代码>尝试以下操作:
$('input', $(this)).is(':checked')
这里有一个可能有用的方法。暗中戳一下:我怀疑$('input',$(this))
与复选框之外的其他类型的
元素匹配,并且在设置这些元素的checked
属性时出错
尝试将选择器限制为仅包含复选框(还请注意,在将其用作选择器上下文时,不需要将此
包装):
好吧,但在这种情况下没有。这就是我文章的全部内容。@bobsoap你看到我的编辑了吗,你查过了吗。如果您有,但它仍然无法工作,那么问题很可能是您的代码在其他地方出现的,我将快速回答JSFIDDLE感谢您添加Sydenam-您是对的,我在上面搞错了。不幸的是,事实并非如此。还是不行。我感谢你的意见!谢谢西德纳姆,非常感谢。我已经更新了我的OP,这一直是我的错误。他的意思是检查单选按钮,而不是检查它是否被选中(已经被标记)
$("input:checkbox", this).attr("checked", "checked");