我正在尝试遍历数组以获取下拉列表的国家/地区信息。
这些是数组:
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]