Jquery中attr與prop的區(qū)別詳解
實(shí)踐過程
在前一段時(shí)間,同事做了一個(gè)頁面,效果是這樣的

頁面
當(dāng)點(diǎn)擊左上方那個(gè)checkBox時(shí),要將下面的checkBox全部選中,我們的代碼是這樣的
$("input[name='checkbox']").attr("checked",true);一點(diǎn)效果都沒有,后來換成這樣,好了
$(function(){
$("#all").click(function(){
if($("#all").prop("checked")){
$("input[name='checkbox']").prop("checked",true);
}else{
$("input[name='checkbox']").prop("checked",false);
}
});
});于是上官方的文檔查了下attr和prop的區(qū)別,發(fā)現(xiàn)根本看不懂,如下圖


于是,我們做了個(gè)實(shí)驗(yàn)
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);結(jié)果是這樣的(chrome)

效果
發(fā)現(xiàn)attr的返回值要么是checked要么是undefined,prop的返回值只有true和false。
經(jīng)過在網(wǎng)上搜素和測(cè)試總結(jié)
prop()函數(shù)的結(jié)果:
1.如果有相應(yīng)的屬性,返回指定屬性值。
2.如果沒有相應(yīng)的屬性,返回值是空字符串。
attr()函數(shù)的結(jié)果:
1.如果有相應(yīng)的屬性,返回指定屬性值。
2.如果沒有相應(yīng)的屬性,返回值是undefined。
對(duì)于HTML元素本身就帶有的固有屬性,在處理時(shí),使用prop方法。
對(duì)于HTML元素我們自己自定義的DOM屬性,在處理時(shí),使用attr方法。
具有 true 和 false 兩個(gè)屬性的屬性,如 checked, selected 或者 disabled 使用prop()
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
jquery對(duì)象和DOM對(duì)象的區(qū)別介紹
jquery對(duì)象和DOM對(duì)象在使用過程很頻繁,正是因?yàn)槿绱?,好多朋友都不知道它們之間有什么區(qū)別,下面為大家詳細(xì)介紹下,希望對(duì)大家有所幫助2013-08-08
jQuery實(shí)現(xiàn)表格奇偶行顯示不同背景色 就這么簡(jiǎn)單
這篇文章主要為大家詳細(xì)介紹了jQuery實(shí)現(xiàn)表格奇偶行顯示不同背景色的方法,使表格更加美觀,便捷的查找同行數(shù)據(jù)更,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
基于ajax及jQuery實(shí)現(xiàn)局部刷新過程解析
這篇文章主要介紹了基于ajax及jQurey實(shí)現(xiàn)局部刷新過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
jquery實(shí)現(xiàn)智能感知連接外網(wǎng)搜索
注意引用的插件及順序;搜索獲取選擇的值,智能感知連接外網(wǎng)搜索,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈,希望對(duì)你大家有所幫助2013-05-05
使用jquery自定義鼠標(biāo)樣式滿足個(gè)性需求
瀏覽器是有自帶的鼠標(biāo)樣式的,如果某些時(shí)候?yàn)榱吮3质髽?biāo)樣式的統(tǒng)一,或者想指定特定的鼠標(biāo)樣式該怎么辦呢?那就要使用自定義了,下面有個(gè)不錯(cuò)的示例,喜歡的朋友可以參考下2013-11-11
jQuery學(xué)習(xí)筆記之DOM對(duì)象和jQuery對(duì)象
DOM對(duì)象和jQuery對(duì)象的操作時(shí)很重要的,是jquery與頁面元素互動(dòng)的基礎(chǔ)。2010-12-12

