zoukankan      html  css  js  c++  java
  • jQuery属性操作,attr 和 prop的区别。笔记记录

    看了 jQuery API文档,属性操作一栏,看到 prop 是1.6+版本新增的方法。

    那attr  和 prop 到底具体有什么区别呢?看以下演示,立马就知道结果了。

    操作一:

    新建一个多选框:

        多选框:
        <input type="checkbox" name="n-checkbox" value="apple" checked/>苹果
        <input type="checkbox" name="n-checkbox" value="banana"/>香蕉
        <input type="checkbox" name="n-checkbox" value="pear" />

    先获取 value属性看一下,script 代码如下:

    <script>
        $(function () {
            // attr
            alert($(":checkbox:first").attr("value"));
    
            //prop
            alert($(":checkbox:first").prop("value"));
        })
    </script>

    结果都是:

    apple

    看到这里,其实 attr ,prop获取属性值,结果都是一样。

    操作二:

    有些疑惑,再获取 一个都都没有的 checked属性,看一下结果:

    <script>
        $(function () {
            // attr
            alert($(":checkbox:last").attr("checked"));
    
            //prop
            alert($(":checkbox:last").prop("checked"));
        })
    </script>

    结果:

    undefined
    false

    attr 显示 undefined ?

    prop 显示 false。

    这又是什么操作?

    查询官方的一些文档,可得到一些结果:

    随着一些内置属性的DOM元素或window对象,如果试图将删除该属性,浏览器可能会产生错误。jQuery第一次分配undefined值的属性,而忽略了浏览器生成的任何错误。

    大概意思是,原来的 attr 属性获取,在操作一些 [选中,未选中的这些]元素时,结果会出现 undefined 结果,官方觉得返回 undefined 是一个错误,

    因此,在1.6+版本 ,出了一个prop 属性操作。用来解决上述问题,当一个元素被选中,为true,否则 为 false。

    那,是不是 以后 只用 prop 方法就可以了?不用 attr属性了。

     其实不然,attr 方法 其实还是很强大的,强大的一点,就是 它可以 操作 非标准的 属性,也就是 自定义属性。如下:

    <script>
        $(function () {
            $(":checkbox:first").attr("patch","test");
        })
    </script>

    页面 显示结果如下:

     那自定属性也啥用呢,当然是 临时用来 储存一些数据了。

    最后整理笔记:

    attr()  可以设置和获取属性的值。 不推荐操作:checked、readOnly、selected、disabled等 会返回undefined 值的属性。

        但是,attr方法 可以操作非标准的属性,也就是自定义属性。

    prop() 可以设置和获取属性的值。 只推荐操作:checked、readOnly、selected、disabled等 会返回undefined 值的属性。

    by不言谢

    不要和别人比,要赢得是自己。(ง •̀_•́)ง
  • 相关阅读:
    Memcached下载、安装及使用演示。
    Redis和Memcache对比及选择
    Log4Net.Config配置信息《转》
    常用正则表达式!收藏
    关于ViewData,ViewBag,TempData三者学习记录!
    C#实战Microsoft Messaging Queue(MSMQ)消息队列(干货)<转>
    C# AutoResetEvent
    C#英文面试常见问题[转]
    Highsoft.Highcharts 5.0.6439.38401 key
    vs2017安装后自动应用许可证
  • 原文地址:https://www.cnblogs.com/byx1024/p/13127439.html
Copyright © 2011-2022 走看看