我正在尝试遍历数组以获取下拉列表的国家/地区信息。

这些是数组:

var array_states_US = new Array("AL", "AK", "AR")
var array_states_names_US = new Array("Alabama", "Alaska", "Arkansas")

var array_states_MX = new Array("AG", "BN", "BS")
var array_states_names_MX = new Array("Aguascalientes", "Baja California", "Baja California Sur")


这是函数:

function buildDropdown(countryISO){
    var tmpArry = 'array_states_'  + countryISO;
    var tmpArryNames = 'array_states_names_' + countryISO;
    $(tmpArry).each(function(i) {
                $(stateSelectId).append($("<option></option>").attr("value", this).text($(tmpArryNames)[i]));
    });
}


但是JQuery将$(tmpArry)和$(tmpArryNames)视为字符串而不是数组值。 (当我在过去的项目中为此使用MooTools时,动态变量不是问题。)如果我改用$(array_states_MX)和$(array_states_names_MX),则它可以工作。但是国家的ISO价值必须是动态的。

使这项工作正确的语法是什么?

最佳答案

您可以使用window对象,因为所有全局变量都存储在此处。

tmpArry = 'array_states_'+countryISO;
$(window[tmpArry]).each(){}


或者,为什么不使用嵌套数组而不是将它们分别命名呢?

array_states[countryISO]

09-20 04:05