2017-06-06 109 views
0

我正在嘗試使用用戶輸入動態分配變量名稱。例如:動態分配變量名稱JavaScript

var input = document.querySelector('input'); 

for(var i = 0; i < 10; i++){ 
    var newVariableName = //input.value; 
} 

任何幫助將非常感激。

謝謝你,在JavaScript 劃痕貓

+0

你能請詳細 –

+0

你想吃點什麼關係呢?理論上講,你可以通過使用全局對象來實現,儘管讓一個字典對象與給定的名字和值相匹配可能會更容易 – Icepickle

+3

爲什麼你不使用數組/對象? –

回答

1

一切都是對象。 JavaScript的工作方式,您可以通過兩種方式添加屬性的對象:

  1. 指定他們的固定方式(例如obj.propertyName = 'Value'
  2. 使用數組符號(例如obj[propertyName] = 'Value')指定它們。在這種情況下,請注意propertyName是一個字符串值。

在這兩種情況下,結果都是完全一樣的。您也可以同樣檢索這些屬性,例如obj.propertyNameobj[propertyName]。兩者都將返回'Value'

在你的情況,@ LuudJacobs的建議有關使用窗口對象將最有可能做的伎倆......

+0

是的,但不能爲不同的名稱使用相同的名稱數組中的對象。它崩潰。 –

+1

哦,我想我現在明白了非常感謝。 –

0

您可以使用數組,其中鍵將輸入值和值將是任何你想要的。

HTML

<form> 

<input type="text" value="demo1" class="example"><br /> 
<input type="text" value="demo2" class="example"><br /> 
<input type="text" value="demo3" class="example"> 

</form> 

JS 首先聲明數組

var a = new Array(); 

然後使用for循環指定鍵名稱數組,這將是輸入值

for(var i = 0; i < 3; i++){ 
    a[x[i].value] = x[i].value; 
} 

最後您可以使用這些鍵名訪問值

alert(a['demo1'] + ' ' +a['demo2'] + ' ' + a['demo3']); 

這裏是一個鏈接到一個例子 https://jsfiddle.net/309fpsjn/1/

<html> 
 
<form> 
 

 
<input type="text" value="demo1" class="example"><br /> 
 
<input type="text" value="demo2" class="example"><br /> 
 
<input type="text" value="demo3" class="example"> 
 

 
</form> 
 
<script> 
 
var x = document.querySelectorAll(".example"); 
 

 
var a = new Array(); 
 

 
for(var i = 0; i < 3; i++){ 
 
    a[x[i].value] = x[i].value; 
 
} 
 

 
alert(a['demo1'] + ' ' +a['demo2'] + ' ' + a['demo3']); 
 

 
</script> 
 
</html>