您好,登錄后才能下訂單哦!
實踐過程
在前一段時間,同事做了一個頁面,效果是這樣的
頁面
當點擊左上方那個checkBox時,要將下面的checkBox全部選中,我們的代碼是這樣的
$("input[name='checkbox']").attr("checked",true);
然并卵,一點效果都沒有,后來換成這樣,好了
$(function(){ $("#all").click(function(){ if($("#all").prop("checked")){ $("input[name='checkbox']").prop("checked",true); }else{ $("input[name='checkbox']").prop("checked",false); } }); });
于是上官方的文檔查了下attr和prop的區別,發現根本看不懂,如下圖
于是,我們做了個實驗
c1:<input id="c1" name="checkbox" type="checkbox" checked="checked" /></br> c2:<input id="c2" name="checkbox" type="checkbox" checked=true/></br> c3:<input id="c3" name="checkbox" type="checkbox" checked=""/></br> c4:<input id="c4" name="checkbox" type="checkbox" checked/></br> c5:<input id="c5" name="checkbox" type="checkbox" /></br> c6:<input id="c6" name="checkbox" type="checkbox" checked=false/></br> var a1=$("#c1").attr("checked"); var a2=$("#c2").attr("checked"); var a3=$("#c3").attr("checked"); var a4=$("#c4").attr("checked"); var a5=$("#c5").attr("checked"); var a6=$("#c6").attr("checked"); var p1=$("#c1").prop("checked"); var p2=$("#c2").prop("checked"); var p3=$("#c3").prop("checked"); var p4=$("#c4").prop("checked"); var p5=$("#c5").prop("checked"); var p6=$("#c6").prop("checked"); console.log("a1:"+a1); console.log("a2:"+a2); console.log("a3:"+a3); console.log("a4:"+a4); console.log("a5:"+a5); console.log("a6:"+a6); console.log("p1:"+p1); console.log("p2:"+p2); console.log("p3:"+p3); console.log("p4:"+p4); console.log("p5:"+p5); console.log("p6:"+p6);
結果是這樣的(chrome)
效果
發現attr的返回值要么是checked要么是undefined,prop的返回值只有true和false。
經過在網上搜素和測試總結
prop()函數的結果:
1.如果有相應的屬性,返回指定屬性值。
2.如果沒有相應的屬性,返回值是空字符串。
attr()函數的結果:
1.如果有相應的屬性,返回指定屬性值。
2.如果沒有相應的屬性,返回值是undefined。
對于HTML元素本身就帶有的固有屬性,在處理時,使用prop方法。
對于HTML元素我們自己自定義的DOM屬性,在處理時,使用attr方法。
具有 true 和 false 兩個屬性的屬性,如 checked, selected 或者 disabled 使用prop()
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。