使用jsfiddle上给出的示例代码,单击一个复选框取消选中所有其他复选框工作正常,但是当我将jquery版本更改为1.10.1时,它不起作用,任何解决方案
$(".chb").each(function(){
$(this).change(function(){
$(".chb").attr('checked',false);
$(this).attr('checked',true);
});
});
这是链接
答案 0 :(得分:2)
版本正在从1.5.2切换到1.10。在jQuery 1.6之后,建议使用.prop()
代替.attr()
。
$(".chb").each(function(){
$(this).change(function(){
$(".chb").prop('checked',false);
$(this).prop('checked',true);
});
});
更好的解决方案是使用单选按钮,这将为您提供所需的行为,而无需任何其他脚本。
<label><input type="radio" name="cb" class="chb" /> Radio1</label>
<label><input type="radio" name="cb" class="chb" /> Radio2</label>
<label><input type="radio" name="cb" class="chb" /> Radio3</label>
<label><input type="radio" name="cb" class="chb" /> Radio4</label>
答案 1 :(得分:1)
你好muzaffar尝试道具而不是attr
$(".chb").each(function()
{
$(this).change(function()
{
$(".chb").prop('checked',false);
$(this).prop('checked',true);
});
});
答案 2 :(得分:1)
由于您没有更改属性,但属性使用jQuery的prop
方法。这适用于版本1.10 +
$(".chb").each(function(){
$(this).change(function(){
$(".chb").prop('checked',false);
$(this).prop('checked',true);
});
});
属性和属性之间的区别
http://www.w3.org/TR/SVGTiny12/attributeTable.html
属性通常由HTML定义,而属性由DOM定义。对于某些元素,属性和属性反映相同(例如元素的id)。显示DOM交互的好方法如下:
<input type="text" value="some value">
此元素有两个属性(type
,text
)。当浏览器解析文档时,它将为具有属性type
和value
的特定元素创建一个对象。如果您随后在其中写入内容,则会影响元素value
属性。尝试检索value
时,您可以更好地发现差异:
input.getAttribute('value') // -> will return the inital value: "some value"
input.value // -> will return the object's value property (the text you've entered)