当我在jquery中尝试.attr更改时,为什么值会发生变化

时间:2014-01-27 21:32:32

标签: jquery

我有一个Jquery脚本,应该根据值检查组中的特定单选按钮。问题是,每当我尝试特定的那个时,它会改变该组中的所有值,并检查错误的值。

这是我用来禁用的行:

$(".fbh-1").val("val2").attr("checked","checked");

这是html:

<input name="field30" value="val2" type="radio" id="rbt-1" class="rbt-1" />

我不太确定我在哪里出错了。关于我应采取的方法的任何建议?

3 个答案:

答案 0 :(得分:3)

$(".fbh-1").val("val2")

这会选择所有 .fbh-1元素并更改其值。这就是你告诉jQuery要做的事情。

我想你想要:

$(".fbh-1[value='val2']")

$(".fbh-1").filter(function(){
    return $(this).val() === 'val2';
})

答案 1 :(得分:1)

.val("val2")正在设置值。

这应该是:

编辑:更新下面的示例,根据操作要求过滤掉值为&#39; val2&#39;的输入。

$(".fbh-1").not("[value='val2']").attr("checked","checked");

答案 2 :(得分:1)

如果您要<input> value 过滤val2,那就是:

$(".fbh-1[value=val2]").attr("checked","checked");

另外,使用prop设置属性:

$(".fbh-1[value=val2]").prop("checked", true);

另外,不要使用jQuery:

document.querySelector(".fbh-1[value=val2]").checked = true;