jquery 關於checked屬性的添加與移除(解決.attr('checked',true)失效問題)

一、遇到問題:
$(":radio").removeAttr('checked');
 $(":radio").attr('checked','true');

實際問題:在使用removeAttr()移除了radio的checked屬性後,使用attr()重新增加不起作用;

二、解決:

方法1:

$(":radio").removeAttr('checked');
$("input:radio").prop('checked','true');

即使用prop()可重新配置上該屬性;
注意:具有 true 和 false 兩個屬性的屬性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr().

方法2:

$(':checkbox').each(function(){
    this.checked=true;
});

attr爲失效?因爲checked屬於爲原型對象的屬性。而attr在remove原型對象時會出錯。原型對象指的是自身自帶的,無法移除。prop會忽略這個錯誤。而attr操作的是普通非原型對象(可移除)。js 的dom對象屬性是可以隨意增加的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章