欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

1小段代码,请求解释

更新时间: 2014-01-05 01:51:46 责任编辑: Author_N1

 

一小段代码,请求解释。

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    #box {background-color: #667B99; height: 100px; width: 100px;}
  </style>
  <script>
  var changeStyle = function (elem, attr, value)
  {
    elem.style[attr] = value
  };
  window.onload = function ()
  {
    var oBtn = document.getElementsByTagName("input");
    var oDiv = document.getElementById("box");
    var oAtt = ["width","height","background","display","display"];
    var oVal = ["200px","200px","#2B91D5","none","block"];

    var i = 0;
    for(i=0; i<oBtn.length; i++){
      oBtn[i].index = i;
      oBtn[i].onclick = function(){
        changeStyle(oDiv,oAtt[this.index],oVal[this.index]);
        //请解释oAtt[this.index]和oVal[this.index]中的[this.index]为何不能直接用[i]。
      }
    }
  };
  </script>
</head>
<body>
  <section>
    <input type="button" value="变宽">
    <input type="button" value="变高">
    <input type="button" value="变色">
    <input type="button" value="隐藏">
    <input type="button" value="显示">
    <div id="box"> </div>
  </section>
</body>
</html>


以上是几个按钮控制一个div的简单代码,请解释一下oAtt[this.index]和oVal[this.index]中的[this.index]为何不能直接用[i],而直接用[i]代码是不能运行的。谢谢。
--参考方法--
闭包问题。
用调试器看看i是多少。
 oBtn[i].onclick = function(){
        changeStyle(oDiv,oAtt[this.index],oVal[this.index]);
       i
      }
--参考方法--
闭包问题  那样的话当你点击的时候i已经是oBtn.length了
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 01:51:46
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/2163/
本文WWW.DOC100.NET DOC100.NET版权所有。