天天看點

jquery attr方法擷取input的checked屬性問題

問題:經常使用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); 
} 
           

總結,如果使用jquery,應使用prop方法來擷取和設定checked屬性,不應使用attr.

轉載腳本之家

繼續閱讀