attribute&property
attribute
1. html预定义属性,例如:0、1;
2. html自定义属性,例如:2。
property
js原生对象的直接属性,attribute的每一个预定义属性都有一个property与之对应,attributes也是property的其中一个属性。
布尔值属性:property的属性值为布尔类型;
非布尔值属性:property的属性值为非布尔类型;
attribute&property同步关系
1. 操作非布尔值属性(例如:name...)时,attribute和property不管在什么情况下都会同步;
2. 操作布尔值属性(例如:checked...)时:
a. 改变property时,不会同步attribute;
b. 在没有动过property(没有给property赋值)时,改变attribute,会同步property;一旦动过property后,改变attribute,不会同步property。
总结
1. 浏览器只认property,用户操作的也是property。
2. 操作非布尔值属性时,使用attribute,成本低;
3. 操作布尔值属性时,使用property。
HTML5中有关的属性
1. classList:相当于class的property(className),常用方法:add、remove、toggle;
2. dataset:自定义属性(格式 data-x-y)的property。