问题整理(开博第一篇)

一、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

原文地址:https://www.cnblogs.com/rohanCh/p/7262247.html