jQuery .attr() vs .prop()

參考自:https://cythilya.github.io/2017/09/10/jquery-attr-vs-prop/jquery

 

<input type="checkbox" class="checkbox-1" checked="true" />
<input type="checkbox" class="checkbox-2" />
<input type="checkbox" class="checkbox-3" checked="false" />
$('.checkbox-1').prop('checked'); //true
$('.checkbox-1').attr('checked'); //checked
$('.checkbox-2').prop('checked'); //false
$('.checkbox-2').attr('checked'); //undefined
$('.checkbox-3').prop('checked'); //true
$('.checkbox-3').attr('checked'); //checked
<input type="checkbox" class="checkbox-3" />
$('.checkbox-3').attr('checked', 'checked');
$('.checkbox-1').prop('checked', true)

** 由於 attribute 只要有設定 HTML 特性 checked,不論等號後面的值是什麼,甚至不帶值,皆會獲得 checked,意即只要設定特性名稱便可。若要取消勾選則要使用 .removeAttr() 移除該特性。.prop() 還是使用布林值設定勾選與否。git

<input type="checkbox" class="checkbox-1" checked="false" />
<!-- 雖然設定checked為false, 仍然會check-->
相關文章
相關標籤/搜索