2015-10-16 35 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