您的位置:首页 > 运维架构

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

2016-05-28 05:52 507 查看
关于这两个的问题一直是前端程序员的困惑,前几天看了一下网上的资料,前天恰好看了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等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: