溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Jquery中attr與prop的區(qū)別詳解

發(fā)布時間:2020-10-11 16:51:19 來源:腳本之家 閱讀:128 作者:我叫了了 欄目:web開發(fā)

實(shí)踐過程

在前一段時間,同事做了一個頁面,效果是這樣的

Jquery中attr與prop的區(qū)別詳解
頁面

當(dāng)點(diǎn)擊左上方那個checkBox時,要將下面的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)根本看不懂,如下圖

Jquery中attr與prop的區(qū)別詳解

Jquery中attr與prop的區(qū)別詳解

于是,我們做了個實(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)

Jquery中attr與prop的區(qū)別詳解
效果

發(fā)現(xiàn)attr的返回值要么是checked要么是undefined,prop的返回值只有true和false。

經(jīng)過在網(wǎng)上搜素和測試總結(jié)

prop()函數(shù)的結(jié)果:

      1.如果有相應(yīng)的屬性,返回指定屬性值。

      2.如果沒有相應(yīng)的屬性,返回值是空字符串。

attr()函數(shù)的結(jié)果:

      1.如果有相應(yīng)的屬性,返回指定屬性值。

      2.如果沒有相應(yīng)的屬性,返回值是undefined。

對于HTML元素本身就帶有的固有屬性,在處理時,使用prop方法。

對于HTML元素我們自己自定義的DOM屬性,在處理時,使用attr方法。

具有 true 和 false 兩個屬性的屬性,如 checked, selected 或者 disabled 使用prop()

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI