如何使用动态变量字符串访问Javascript数组

时间:2015-08-06 17:54:19

标签: javascript jquery arrays for-loop

当用户选择单选按钮时,其ID用于通过jQuery的.change()函数访问javascript数组,然后使用$ .each函数循环访问内容并取消隐藏表单控件。但是,当我运行此代码时,我得到:

未捕获的TypeError:无法在'中使用'运营商搜索'长度'在程序员中

**提及此错误的stackoverflow上的其他解决方案似乎引用了JSON对象,而不仅仅是普通的javascript数组。我确实通过合并一个IF语句来询问变量是否是"程序员"然后根据它执行代码。这在我看来效率不高,但它确实允许我使用实际的单词" programmer"而不是动态变量名称" position" (包含程序员)。

单选按钮

<label for="position">Position</label>

程序员......

数组:

var programmer = [  
    "blah1", 
    "blah2", 
    "blah3"
];

.change()代码

$(".positionRadios").change(function() {
    var position = $(this).attr('id'); 
    if (position != null) { 
        $.each(position, function (index, value) {
            $("#" + value).show();
        });
    } else {
        $('.system').hide();
    }
});

当我尝试使用for循环时,它只是循环遍历id字符串的每个字母。它没有将字符串与变量数组名称相关联。

解决方案?

1 个答案:

答案 0 :(得分:0)

我在网上找到的所有东西都引用了解析JSON来获取变量字符串作为对象的用法。 In this post,我发现虽然不鼓励使用eval(),但实际上将字符串作为对象/数组。代码现在可以正常运行。我将继续研究JSON选项。