Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery:使用attr()检查单选按钮不会';不行?_Jquery - Fatal编程技术网

jQuery:使用attr()检查单选按钮不会';不行?

jQuery:使用attr()检查单选按钮不会';不行?,jquery,Jquery,不确定这是否是jQuery1.4.2中的一个bug——我不明白为什么它不起作用 我需要检查一个单选按钮。我正在使用attr({'checked':'checked'}),我还尝试了attr('checked':true)-没有一个会起作用。但是,如果我在同一个单选按钮上执行attr('title':'whatever'),并且没有任何其他更改,那么每次都可以 title属性和我缺少的checked属性之间是否存在一些模糊的差异?它们都是您日常使用的HTML属性。那么,为什么一个有效而另一个无效呢

不确定这是否是jQuery1.4.2中的一个bug——我不明白为什么它不起作用

我需要检查一个单选按钮。我正在使用
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");