2015-10-16 37 views
0

这是一个来自我的java脚本代码的示例。通过这段代码,我得到了一个正确的结果(1,2)。现在,而不是变量“詹姆斯”,我想设置一个变量取决于输入值(在这种情况下var输入)。我怎样才能做到这一点?有没有办法通过输入值在页面上找到JavaScript变量?如何通过输入值查找JavaScript变量?

var james = "James", 
    daniel = "Daniel", 
    jacob = "Jacob"; 

// some code // 

var james = [1, 2], 
    daniel = [3], 
    jacob = [4, 5]; 

function buttonclick() 
{ 
    var input = document.getElementById("selector").value; 
    var text2 = ""; 
    var y; 
    for (y in james) { 

     text2 += james[y] + "<br>"; 
     } 
    document.getElementById("demo").innerHTML = text2; 
} 

回答

2

你可以拾取它们通过window全局对象:

var james = "James", 
    daniel = "Daniel", 
    jacob = "Jacob"; 

// some code // 

var james = [1, 2], 
    daniel = [3], 
    jacob = [4, 5]; 

function buttonclick() 
{ 
    var input = document.getElementById("selector").value; 
    var text2 = ""; 
    //input could be james, daniel or jacob 
    var y; 
    for (y in window[input]) { 

     text2 += window[input][y] + "<br>"; 
     } 
    document.getElementById("demo").innerHTML = text2; 
} 

除非他们是在一个封闭或嵌套在一些功能。

+0

是的,它的工作原理!只是在循环中,而不是詹姆斯[y],我想你的意思是(窗口[textruta])[y] –

+0

啊,你是对的! – MinusFour

0

与你的例子中的var输入一样。但是,我猜你是在要求某人真正将某些东西放入输入中时才创建变量。 然后,您需要创建一个函数,用于侦听输入字段的onKeyUp事件,然后将当前值保存到变量中。

+0

'oninput'也是一个不错的选择。 – rnevius