2012-10-17 82 views
9

我知道jquery将允许你用.attr()方法修改属性。基本上有两种方法:用jquery设置一个布尔属性

$('#element').attr('attribute', 'value') // sets the attribute 
var attribute = $('#element').attr('attribute') // gets the attribute 

我的问题是,你如何设置一个布尔属性,如在选择标签复选框或“多”“检查”?

我试着做没有成功如下:

$('#element').attr('attribute', true) 
$('#element').attr('attribute', '') 

所有这些添加的特性,但通常这样的<tag attribute="attribute">

回答

13

尝试使用.prop处理boolean是支持的属性,如selected/disabled/checked

$('#element').prop('attribute', true); 

从jQuery的文档,(一个例子)

elem.checked返回true(布尔)将与复选框状态

改变

$(elem).prop("checked")返回true(布尔型)将随复选框状态变化

elem.getAttribute("checked")返回"checked"(字符串)复选框的初始状态;不改变

$(elem).attr("checked")(1.6)返回"checked"(字符串)复选框的初始状态;不改变

$(elem).attr("checked")(1.6.1+)返回"checked"(字符串)将与复选框状态

$(elem).attr("checked")(pre-1.6)使用复选框状态

-1

HTML属性更改的回报true(布尔)总是字符串值发生变化。如果你确实想设置一个字符串以外的东西,那么请考虑使用jQuery.data()

+1

在HTML5中不是这样:http://dev.w3.org/html5/spec/common-microsyntaxes.html#boolean - 属性 –

+0

你是对的,我不应该做出这样的假设......道歉 –

相关问题