一、自定义属性
1、读写操作
<input abc="123" type="button" value="按钮" /> ========================================================= //读写: var aBtn = document.getElementsByTagName('input'); aBtn[0].abc = '456';
2、js可以为任何HTML元素添加任意个自定义属性
3、自定义属性可以作为判断的依据,相对于用class后者flag变量判断,优点:
3.1 有时候不允许操作class时,可以利用自定义属性,通过判断自定义属性的值,从而操作流程
3.2 一个flag变量只能判断一组对象,当对象在循环中有多组对象时,只能用class 或者 自定义属性
4、for循环里面的i
1 for(var i = 0; i < aLi.length; i++) { 2 i //这里的 i 是0、1、2…… 3 aLi[i].onclick = function() { 4 i //这里的 i 涉及到闭包和作用域问题,不能返回1、2、…… 只能返回aLi.length 5 } 6 }
5、自定义索引
1 for(var i = 0; i < aLi.length; i++) { 2 aLi[i].index = i; //给每个li添加自定义属性index,值为i,模拟成为索引 3 aLi[i].onclick = function() { 4 i //这里的 i 涉及到闭包和作用域问题,不能返回1、2、…… 只能返回aLi.length 5 } 6 }
5.1 自定义索引的应用
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>无标题文档</title> 6 <script> 7 window.onload = function (){ 8 var aBtn = document.getElementsByTagName('input'); 9 var aP = document.getElementsByTagName('p'); 10 11 // 想建立“匹配”“对应”关系,就用索引值 12 var arr = [ '莫涛', '张森', '杜鹏' ]; 13 14 for( var i=0; i<aBtn.length; i++ ){ 15 16 aBtn[i].index = i; // 自定义属性(索引值) 17 18 aBtn[i].onclick = function (){ 19 // alert( arr[ this.index ] ); 20 this.value = arr[ this.index ]; 21 22 aP[ this.index ].innerHTML = arr[ this.index ]; 23 }; 24 } 25 }; 26 </script> 27 </head> 28 29 <body> 30 31 <input type="button" value="btn1" /> 32 <input type="button" value="btn2" /> 33 <input type="button" value="btn3" /> 34 <p>a</p> 35 <p>b</p> 36 <p>c</p> 37 38 </body> 39 </html>