[英]Create java script array dynamically whose name is in java script string
我有動態生成的數組的集合。 我想做的是實現自動完成功能。 我想在click事件處理程序中使用這些數組,方法是動態獲取名稱並將其分配給本地數組。 但這是行不通的(我不確定代碼是否正確)。 有什么辦法可以實現?
這是我認為應該起作用的代碼(不起作用):
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.js"></script>
<script>
var ga_input1 = new Array('India','Russia','Norway');
var ga_input2 = new Array('Delhi','Mumbai','Hyderabad');
</script>
<body>
Countries: <input id="input1" type="text"/>
Cities: <input id="input2" type="text"/>
<script>
var arrayTmp = new Array();
$('input').keydown(function(){
var id = $(this).attr('id');
arrayTmp = "ga_"+id; // What I believe here is the values of ga_input1/ga_input2 are assigned to array 'arrayTmp'
//alert(arrayTmp[0]);
});
</script>
</body>
您可以將這些數組放在“地圖”中,以后可以輕松地從中獲取它們。
這是完成的過程:
var countryMap = {};
countryMap["Europe"] = ['Russia', 'England', 'Norway'];
countryMap["America"] = ['USA', 'Canada', 'Mexico'];
....
var arrayTmp = countryMap["America"];
alert(arrayTmp[0]); //USA
alert(arrayTmp[1]); //Canada
alert(arrayTmp[2]); //Mexico
所有全局變量都是window對象的成員,因此:
arrayTmp = window["ga_"+id];
但是我個人將數據放在這樣的對象中:
data = {
'input1': ['India','Russia','Norway'],
'input2': ['Delhi','Mumbai','Hyderabad']
};
...
arrayTmp = data[id];
您在arrayTmp
中只有字符串"ga_input1"
。 而是嘗試eval("arrayTmp=ga_"+id);
。
eval('var arrayTmp = ga_'+ id); alert(arrayTmp [0]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.