2012-10-17 107 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

你是對的,我不應該做出這樣的假設......道歉 –

相關問題