• jquery中的attr()和prop()的区别是什么?


    是不是刚开始学jQuery的时候,看到了这两个方法:attr()和prop();感觉这不是一个意思吗?他们有什么区别呢?

    下面简单的给大家区分一下:

    • 对于HTML元素本身就带有的固有属性,在处理的时候,使用prop()方法。

    • 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr()方法。

    举例说明:

    "http://www.baidu.com" target="_self" class="btn">百度
    
    • 1

    这个例子里a元素的DOM属性有href、target和class,这些属性就是a元素本身就带有的属性,也就是W3C标准里就包含有这几个属性,这些就叫做固有属性。处理这些属性时,建议使用prop()方法。

    "#" id="link1" del="delete">删除
    
    • 1

    这个例子里a元素的DOM属性有href、id和del,很明显,前两个是固有属性,而后面一个del属性是我们自己自定义上去的,a元素本身是没有这个属性的。这种就是自定义的DOM属性,处理这些属性时,建议使用attr()方法。使用prop()方法取值和设置属性值时,都会返回undefined值。

    再举一例:
    像checkbox,disabled,radio和select这样的元素,选中属性对应checked和selected,这些也属于固有属性,因此需要使用prop()方法去操作才能获得正确的结果。

    $("#chk1").prop("checked") // false
    $("#chk2").prop("checked") // true
    
    • 1
    • 2

    在这里插入图片描述

    如果上面使用attr()方法,则会出现:

    $("#chk1").attr("checked") // undefined
    $("#chk2").attr("checked") // "checked"
    
    • 1
    • 2

    在这里插入图片描述

    大家都知道有的浏览器只要写disabled,checked就可以了,而有的要写成disabled = “disabled”,checked=“checked”,比如用attr(“checked”)获取checkbox的checked属性时选中的时候可以取到值,值为"checked"但没选中获取值就是undefined。

    jQuery提供新的方法prop()来获取这些属性,就是来解决这个问题的,以前我们使用attr()获取checked属性时返回"checked"和undefined,现在使用prop()方法获取属性则统一返回true和false。

    陆荣涛前端学习交流Q群858752519
    加群备注:CSDN推荐

  • 相关阅读:
    云计算时代的采集利器
    [C/C++] 数据结构 链表OJ题:相交链表(寻找两个链表的相交起始结点)
    Python 使用类的属性和方法
    在访问一个网页时弹出的浏览器窗口,如何用selenium 网页自动化解决?
    配置Linux
    STM32使用硬件IIC读取SHTC3温湿度传感器 显示在OLED屏上
    C++ 20 内存模型(一)
    漏洞分析丨HEVD-11.DoubleFetch[win7x86]
    kettle学习--基础--01--介绍
    使用Umi 遇到的错误
  • 原文地址:https://blog.csdn.net/sdasadasds/article/details/126173027