jquery - 无法在 JQuery 中使用动态数组名称

标签 jquery arrays variables dynamic

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

这些是数组:

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/

相关文章:

c++ - C 和 C++ 中的可变长度数组 (VLA)

java - 应用程序和小程序的全局值(value)

Javascript:变量值在回调中使用之前发生变化

jquery - 语义 UI 评级 onRate()

javascript - C# String.IsNullOrEmpty 等效的 Javascript

javascript - 不区分大小写的 jQuery 搜索过滤器

关于原始数组的 Java 泛型方法代码重复问题

javascript - 返回的数组打印数组索引而不是值

C++11为什么 'decltype(x)'和 'decltype((x))'的类型不同?

javascript - 使用 Select Option 下拉菜单的 jQuery Multiple Star Rating 系统