隨着prop方法的推出,現在我需要知道取消選中複選框的可接受方式。它是:.prop('checked',false)或.removeAttr('checked')?
$('input').filter(':checkbox').removeAttr('checked');
或
$('input').filter(':checkbox').prop('checked',false);
隨着prop方法的推出,現在我需要知道取消選中複選框的可接受方式。它是:.prop('checked',false)或.removeAttr('checked')?
$('input').filter(':checkbox').removeAttr('checked');
或
$('input').filter(':checkbox').prop('checked',false);
jQuery的3
在jQuery 3,removeAttr
確實不設置相應屬性false
了:
在jQ之前uery 3.0,在布爾屬性上使用
.removeAttr()
(如checked
,selected
或readonly
)也會將相應的命名屬性設置爲false
。此行爲是古代Internet Explorer版本所必需的,但對於現代瀏覽器不正確,因爲屬性表示初始值,屬性表示當前(動態)值。在DOM元素上使用
.removeAttr("checked")
幾乎總是錯誤的。唯一有用的是如果DOM稍後將被序列化回HTML字符串。在所有其他情況下,應該使用.prop("checked", false)
。
因此,只有.prop('checked',false)
是正確的方式使用這個版本時。
原來的答覆(2011年):
對於具有潛在的布爾屬性(其中checked
是其中之一)的屬性,removeAttr
自動設置底層屬性false
。 (請注意,這是jQuery 1.6.1中添加的向後兼容「修復」)。
所以,要麼工作......但你給的第二個例子(使用prop
)是更正確的兩個。如果您的目標是取消選中該複選框,那麼您確實想要影響屬性,而不是該屬性,並且不需要通過removeAttr
來完成此操作。
你可以使用'removeProp()' – 2011-10-11 20:35:40
@tandu:你*可以*,但你不應該。從文檔:「**注意:**不要使用['removeProp()']來刪除本機屬性,如選中,禁用或選中。這將完全刪除屬性,一旦刪除,不能再次添加請使用'.prop()'將這些屬性設置爲false。「 'removeProp'實際上只適用於自定義屬性。 – 2011-10-11 20:51:04
使用checked
:true,false複選框的屬性。
的jQuery:
if($('input[type=checkbox]').is(':checked')) {
$(this).prop('checked',true);
} else {
$(this).prop('checked',false);
}
另一種替代方法做同樣的事情是在類型=複選框屬性過濾:
$('input[type="checkbox"]').removeAttr('checked');
或
$('input[type="checkbox"]').prop('checked' , false);
Remeber該差屬性和屬性之間的關係在特定中可能很重要情況。之前jQuery 1.6,。在檢索某些屬性時,attr()方法有時會考慮屬性值,這可能會導致行爲不一致。從jQuery 1.6開始,.prop()方法提供了顯式檢索屬性值的方法,而.attr()檢索屬性。
Know more ...
問題是「哪一個更正確?」,而不是「有沒有其他方法可以做到這一點?」。您好像沒有試圖回答這個問題 – 2014-07-24 08:55:25
我建議同時使用,支撐和attR因爲我有Chrome出現問題,我解決它使用兩種功能。
if ($(':checkbox').is(':checked')){
$(':checkbox').prop('checked', true).attr('checked', 'checked');
}
else {
$(':checkbox').prop('checked', false).removeAttr('checked');
}
是的,對於Chrome,請使用: '$(「input [type ='checkbox'],input [type ='radio']」)。prop(「checked 「,false).attr(」checked「,false).removeAttr(」checked「);' – Rodrigue 2017-08-04 13:37:27
你看過John Resig的帖子嗎? http://ejohn.org/blog/jquery-16-and-attr/ – 2011-05-29 19:17:08