簡體   English   中英

動態創建名稱在Java腳本字符串中的Java腳本數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM