用data-xxx自定义的属性名最好全部小写

来源:互联网 发布:手机数据上网慢怎么办 编辑:程序博客网 时间:2024/06/07 03:16

今天写一个组件,在某处为了传值在input标签中定义了一个data-courseInfo属性,然后用jquery的data(“courseInfo”)去取,却死活取不到值,打出的是undefined,而用jquery的attr("data-courseInfo")去取,却能取到。

后来在浏览器中查年,发现我定义的属性名被浏览器改成了小写的data-courseinfo, 真是哭笑不得。。。

也是,因为HTML属性是不区分大小写的,而web标准又要求属性名要小写,so,以后属性名就都小写吧,省得再出现类似今天的问题。

最后提一下,个人认为attr()之所以能得到值,可能是因为它内部先进行了一次toLowerCase()操作,因为HTML属性名不区分大小写嘛。


另附,data()和attr()取值的区别:

attr(): 返回的永远是string类型的,例如我存了一个stringify的json对象,则返回的仍是此对象的string序列;

data(): 返回数据本来的值,同上例,它返回的就是json对象本身。当存了数值或布尔值时,它返回的也是数值或布尔值。所以优先推荐用此方法。

原创粉丝点击