問題:經常使用jQuery插件的attr方法擷取checked屬性值,擷取的值的大小為未定義,此時可以用prop方法擷取其真實值,下面介紹這兩種方法的差別:
1.通過prop方法擷取checked屬性,擷取的checked傳回值為boolean,選中為true,否則為flase
<input type="checkbox" id="selectAll" onclick="checkAll()">全選
function checkAll() {
var checkedOfAll = $("#selectAll").prop("checked");
console.log(checkedOfAll);
$("input[name='procheck']").prop("checked", checkedOfAll);
}
2.如果使用attr方法擷取時,如果目前input中初始化未定義checked屬性,則不管目前是否選中,$(“#selectAll”).attr(“checked”)都會傳回undefined;
<input type="checkbox" id="selectAll" onclick="checkAll()" >全選
如果目前input中初始化已定義checked屬性,則不管是否選中,$(“#selectAll”).attr(“checked”)都會傳回checked.
<input type="checkbox" id="selectAll" onclick="checkAll()" checked>全選
function checkAll() {
var checkedOfAll = $("#selectAll").attr("checked");
console.log(checkedOfAll);
$("input[name='procheck']").attr("checked", checkedOfAll);
}