亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

jQuery中attr和prop的區別

標簽:
JQuery

在上周同事 做一个页面,效果是这样的


webp

页面

当点击左上方那个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的区别,发现根本看不懂,如下图


webp

webp

于是,我们做了个实验

        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)

webp

效果

发现attr的返回值要么是checked要么是undefined,prop的返回值只有true和false。
经过在网上搜素和测试总结

prop()函数的结果:
1.如果有相应的属性,返回指定属性值。
2.如果没有相应的属性,返回值是空字符串。
attr()函数的结果:
1.如果有相应的属性,返回指定属性值。
2.如果没有相应的属性,返回值是undefined。

对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。
具有 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop()



作者:我叫了了
链接:https://www.jianshu.com/p/5818b224c1c5


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消