• 问题整理(开博第一篇)


    一、attr和prop的区别

      通过prop和attr处理自定义属性

    <img src="" alt="" id="test1" abc="self">

      

            var test1 = $("#test1");
            //都能对固有属性设置值
            /*赋值前*/
            console.log(test1.prop("abc"));//undefined
            /*赋值后*/
            console.log(test1.prop("abc",123));
            console.log(test1.prop("abc"));//123
    
            /*赋值前*/
            console.log(test1.attr("abc"))//self
            /*赋值后*/
            console.log(test1.attr("abc",456))
            console.log(test1.attr("abc"))//456

    可见,attr和prop都能对属性赋值

    区别在于,对于已声明且赋值的自定义属性,

    赋值前: attr返回标签中的值,prop返回undefined

    赋值后:都能返回新值

    自定义属性只声明,不赋值

         /*赋值前*/
            console.log(test1.prop("abc"));//undefined
            /*赋值后*/
            console.log(test1.prop("abc",123));
            console.log(test1.prop("abc"));//123
    
            /*赋值前*/
            console.log(test1.attr("abc"))//空
            /*赋值后*/
            console.log(test1.attr("abc",456))
            console.log(test1.attr("abc"))//456

    attr返回空,prop返回undefined

    自定义属性不声明

    attr和prop都返回undefined

    通过 attr和prop处理仅声明的固有属性值

         /*赋值前*/
            console.log(test1.attr("alt"));//返回空字符串
            console.log(test1.prop("alt"));//返回空字符串
            /*赋值后*/
            console.log(test1.attr('alt', '测试'))
            console.log(test1.prop("alt"));//测试
    
            console.log(test1.prop('alt', '测试1'))
            console.log(test1.prop("alt"));//测试1

    属性仅声明赋值前attr和prop均返回定义的值(值为空时返回空字符串)

    但是如果处理的是未声明属性

    <img src=""  id="test1" abc="self">
         /*赋值前*/
            console.log(test1.attr("alt"));//undefined
            console.log(test1.prop("alt"));//返回空
            /*赋值后*/
            console.log(test1.attr('alt', '测试'))
            console.log(test1.prop("alt"));//测试
    
            console.log(test1.prop('alt', '测试1'))
            console.log(test1.prop("alt"));//测试1

    未声明属性赋值前:attr对未声明的固有属性返回undefined,prop返回空

    声明且赋值

    attr和prop都返回定义的值

    所以

    attr对固有属性和自定义属性:属性声明,有值返回值,无值返回空;属性未声明undefined

    prop对固有属性:属性声明,有值返回值,无值返回空;属性未声明返回空

    prop对自定义属性:属性声明,有值undefined,无值undefined; 属性未声明undefined

    但是透过prop对自定义属性重新赋值可以返回赋值后的结果

    再所以:

    对固有属性:属性声明,有值attr和prop都返回值,无值都返回空;未声明,attr返回undefined,prop返回空

    对自定义属性:属性无论是否声明,prop都返回undefined,除非使用prop对自定义属性赋值

     对于checked:

    http://www.runoob.com/try/try.php?filename=tryjquery_html_prop_attr

    attr返回标签内定义的值且不随标签状态改变而改变

    prop返回T/F随标签状态改变

    二、ajax参数

    三、遍历DOM元素的方法

    四、本地存储

    五、formset

  • 相关阅读:
    移动端 (基于jquery的3个)touch插件
    leaflet开源地图库源码 浏览器&移动设备判断(browser.js)备份
    移动端 常见问题整理 iOS下的 Fixed + Input 调用键盘的时候fixed无效问题解决方案
    百度echarts扇形图每个区块增加点击事件
    js 性能优化整理之 缓存变量
    移动端 延迟加载echo.js的使用
    js 性能优化整理之 高频优化
    css整理 background-size优化
    原生js 样式的操作整理
    百度地图展示分公司信息 (针对电视机)
  • 原文地址:https://www.cnblogs.com/rohanCh/p/7262247.html
Copyright © 2020-2023  润新知