首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

帮忙解释上代码

2012-10-14 
帮忙解释下代码!JScript codescript typetext/javascriptvar changefunction(elem,att,val){elem.st

帮忙解释下代码!

JScript code
<script type="text/javascript">    var change=function(elem,att,val){        elem.style[att]=val;    }    window.onload=function(){        var buttons=document.getElementsByTagName("input");                //这是几个按钮        var box=document.getElementById("box");        var att=["height","width","backgroundColor","display","display"];        var val=["200px","200px","red","none","block"];        for(var i=0;i<buttons.length;i++){            buttons[i].index=i;                        //给按钮分配index            buttons[i].onclick=function(){                change(box,att[this.index],val[this.index]);                                //这里为什么用att[i],val[i]获取不到值呢,求解释            }        }    }</script>


为什么那行获取不到值呢,解释下原理吧,谢谢!

[解决办法]
闭包问题,你若想直接使用i值

JScript code
        (function(i){            buttons[i].onclick=function(){                change(box,att[i],val[i]);            }        })(i) 

热点排行