【发布时间】:2013-03-28 12:19:13
【问题描述】:
我一直在尝试使用 jQuery 以编程方式选择单选按钮,我认为这就像更改选中的属性一样简单。
但是,以下代码似乎并没有在 Chrome/Firefox 中执行 jQuery 1.9.1 中的预期。
预期行为:单击包含单选按钮的 div -> 'checked' 属性被设置 -> 在 DOM 中呈现选中状态。
实际行为:单击包含单选按钮的 div -> 'checked' 属性被设置 -> 在 DOM 中呈现选中的第一个和第二个按钮单击,后续按钮不会呈现为检查。
jQuery:
$('div.form-type-radio').on('click', function () {
var Id = $(this).find('input[type=radio]').attr('id');
$('form input[type=radio]:not(#'+Id+')').removeAttr('checked');
$('#' + Id).attr('checked', 'checked');
console.log($('#' + Id));
});
这是一个 jsFiddle - http://jsfiddle.net/GL9gC/
我已经用以前版本的 jQuery 尝试了相同的代码,它都按预期工作。
【问题讨论】:
-
并不是说它与此有任何关系,但是为什么你会得到元素,然后是 ID,下面的几行再次使用 ID 来获取元素? (
not也适用于元素)。你的整个函数可能只是$('input[type=radio]', this).prop('checked', true); -
这只是一些头疼和调试留下的,只是绝对确定我有 ID。
标签: javascript jquery debugging jquery-selectors