第十章編程練習問題
window.onload?=?function(){
?????????????var?oTab?=?document.getElementById("tabs");
?????????????var?oUl?=?oTab.getElementsByTagName("ul")[0];
?????????????var?oLis?=?oUl.getElementsByTagName("li");
?????????????var?oDivs=?oTab.getElementsByTagName("div");
?????????????for(var?i=?0,len?=?oLis.length;i<len;i++){
?????????????????oLis[i].index?=?i;
?????????????????oLis[i].onclick?=?function()?{
?????????????????????for(var?n=?0;n<len;n++){
?????????????????????????oLis[n].className?=?"";
?????????????????????????oDivs[n].className?=?"hide";
?????????????????????}
?????????????????????this.className?=?"on";
?????????????????????oDivs[this.index].className?=?"";
?????????????????}
?????????????};
?????????}這個里面的.index是什么含義?
2015-10-30
.index是自定義的屬性,li標簽本身是沒有index屬性的;
樓主的代碼里?oLis[i].index?=?i;這句里用index存放了i值;
所以后面?oDivs[this.index].className?=?"";這里this.index才能拿到值;
你看下我寫的測試代碼
開始的時候index本來是未定義的
賦值之后才有了值;
<html> <head> ????<script?type="text/javascript"> ????????function?test(){ ????????????var?oUl?=?document.getElementsByTagName("ul")[0]; ????????????var?oLis?=?oUl.getElementsByTagName("li"); ????????????alert(oLis[1].index);????????//這里出來的是undefined ????????????oLis[1].index?=?1; ????????????alert(oLis[1].index);????????//這里出來的是賦予的值 ????????} ????</script> </head> <body> ????<input?type="button"?onclick="test()"?value="test"> ????<ul> ????????<li>li1</li> ????????<li>li2</li> ????????<li>li3</li> ????</ul> </body> </html>