我正在尝试迭代数组以获取下拉列表的国家/地区信息。
这些是数组:
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]
关于jquery - 无法在 JQuery 中使用动态数组名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6446984/