为什么不能按变量名打印内容?

请教为什么无法通过变量名获取打印的变量内容呢?

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>
<body>
<script>
window.onload=function(){
    var sColor="#114578";
    var  col0 = sColor.substring(1, 3);
    var  col1 = sColor.substring(2, 5);
    var  col2 = sColor.substring(4);
 var btn = document.getElementsByTagName("button");
 var btnL = btn.length;     
for( var i=0; i<btnL; i++){
    (function (e) {
        btn[e].onclick = function(){ 
            var subStr=col[e];
            alert(subStr);
            }
        })(i);
}
  }
</script>
<button>按钮1</button>
<button>按钮2</button>
<button>按钮3</button>
</body>
</html>
阅读 2.2k
4 个回答

请把下面这段代码:

    var  col0 = sColor.substring(1, 3);
    var  col1 = sColor.substring(2, 5);
    var  col2 = sColor.substring(4);

修改为:

var col = [];
col.push(sColor.substring(1, 3));
col.push(sColor.substring(2, 5));
col.push(sColor.substring(4));

@姜立 eval()能不用就不用吧

col[e]跟col0 col1 col2是两回事吧。。。

            (function (e) {
                btn[e].onclick = (function(e){
                    var subStr = eval('col'+e)
                    alert(subStr);
                })(e)
            })(i);

试试呢

新手上路,请多包涵

col[e]指对象的某个属性,你的col0,col1,col2是具体的变量

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题