定义
元素特性属性是指HTML元素标签的特性
下面的id、类、标题、一个都是特性,其中一个叫做自定义特性
& lt; div id=癷d1”,类=癱lass1, title=皌itle1”, a=癮1”祝辞& lt;/div>
对象属性财产是指元素节点的属性
下面的id、标题、b都是属性,其中b叫做自定义属性
& lt; div id=安馐浴弊4? lt;/div> & lt; script> test.id =, id2”; 时间=test.title “title2”; test.b =, b2, & lt;/script>
,
共有
id、标题等既是属性,也是特性。修改属性,其对应的特性会发生改变;修改特性,属性也会改变
【1】修改元素特性(以标题为例)
& lt; div id=安馐浴?title=' 123 '在测试内容& lt;/div> & lt; script> console.log (test.title);//123 document.onclick =,函数(){ ,,,test.setAttribute('标题',' 456 '); ,,,console.log (test.title);//456,,,,} & lt;/script>
【2】修改对象属性
& lt; div id=安馐浴?title=' 123 '在测试内容& lt;/div> & lt; script> console.log (test.getAttribute('标题'));//123 document.onclick =,函数(){ ,,,test.title =,“456”; ,,,console.log (test.getAttribute('标题'));//456,,,,}& lt;/script>
例外
类和这两个元素特性是例外,因为类和是保留字,无法直接在对象属性中使用,所以在对象属性中,类变成了类名,而对于变成了htmlFor
【1】班
& lt; div id=安馐浴?类=癱lass1”在测试内容& lt;/div> & lt; script> console.log (test.getAttribute(类));//癱lass1'console.log (test.className);//' class1'console.log (test.class);//undefined
【2】
& lt; label id=安馐浴?为=笆淙搿弊4? lt;/label> & lt; script> console.log (test.getAttribute(', '));//笔淙?console.log (test.htmlFor);//输入'console.log (test.for);//undefined
,
特殊
样式和onclick是两个特殊的特性,它们虽然有对应的属性名,但属性值与通过getAttribute()返回的值并不相同【1】
风格通过getAttribute()访问时,返回的风格特性值中包含的是CSS文本,而通过属性来访问它则会返回一个CSSStyleDeclaration对象
& lt; div id=安馐浴?在& lt;/div> & lt; script> console.log (test.getAttribute(“风格”));//的高度:100 px;宽度:,100 px;“//{0:,“高度”,1:,“宽度”,alignContent:,“”, alignItems:,“”, alignSelf:,“…} console.log (test.style); console.log (typeof test.style);//对象'console.log (test.style.height);//?00 px的& lt;/script>
【2】onclick
如果通过getAttribute()访问,会返回相应代码的字符串。而访问onclick属性时,会返回一个javascript函数
[注意]其他事件处理程序也类似
& lt; div id=安馐浴?onclick =,“警报(1)”的在测试内容& lt;/div> & lt; script>,,,, console.log (test.getAttribute (onclick));//警报(1)“console.log (test.onclick);//' function onclick(事件),{警报(1)}的console.log (typeof test.onclick);//昂? lt;/script>
[注意]如果通过对象属性设置onclick属性,则不会有对应的元素特性
& lt; div id=安馐浴钡脑诓馐阅谌? lt;/div> & lt; script> test.onclick =,函数(){ ,,,提醒(1); },,,, console.log (test.getAttribute (onclick));//nullconsole.log (test.onclick);//癴unction onclick(事件),{警报(1)}’console.log (typeof test.onclick);//δ堋? lt;/script>
,
自定义
【1】自定义特性
自定义特性用来在HTML元素上绑定一些额外的信息。但是自定义特性无法在对象属性中有所体现
& lt; div id=安馐浴?指数=' 1 '祝辞& lt;/div> & lt; script> console.log (test.getAttribute(指数));//' 1 'console.log (test.index);//undefined ,,, & lt;/script>
HTML5新增了数据集属性数据集(规范的自定义特性),用于存储页面或应用程序的私有定制数据。数据集属性以“数据”为前缀,可以使用javascript中对象属性数据集访问数据- *的值
由于元素特性的值以“——”做间隔,在对象属性中将转换为首字母大写的形式
data-index-one →,数据集。indexOne
所以,元素特性的值一定不要出现大写,否则对象属性会解释出错
[注意]IE10——浏览器不支持数据集
& lt; div id=安馐浴?data-index-one=?”祝辞& lt;/div> & lt; script> console.log (test.getAttribute (' data-index-one '));//' 1 'console.log(测试[' data-index-one ']);//undefinedconsole.log (test.dataset.indexOne);//' 1 ' & lt;/script>区分元素特性属性和对象属性属性