关于Dom元素的属性(property)和特性(attribute)

关于这两个的问题一直是前端程序员的困惑,前几天看了一下网上的资料,前天恰好看了jquery作者的讲解,我的理解是属性是类似于js对象里的属性,可以随便写一个,特性是html里固有的变量,比如id和class等。下面说一下测试发现的结果。

假设element变量代表一个dom元素。

通过setAttribute("xxx",1)和element.xxx=1的形式设置值的时候,

1.如果xxx是代表特性的变量,比如id和class,那么不管用哪种方法设置,都会互相影响,也就是说设置后,通过element.xxx和getAttibute("xxx")的时候,返回的结果是一样的。

2.如果xxx代表的不是特性的值,那么值就不会同步,比如element.hello="world"时,通过getAttibute方法获取的时候会返回null,并且不会出现在html代码里,通过打开F12查看elementsTab里的代码发现没有变化。同样地,通过setAttibute方法设置的值。用element.xxx的形式也不会返回值,只会返回undefined。但是新加的键和值会出现在html代码里。

例外顺便说一下的是有些html的特性以element.xxx的形式赋值或者取值时需要做相应的变化,如果class要写成className,for写成htmlFor,readonly要写成readOnly等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值