当用户选择单选按钮时,其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字符串的每个字母。它没有将字符串与变量数组名称相关联。
解决方案?
答案 0 :(得分:0)
我在网上找到的所有东西都引用了解析JSON来获取变量字符串作为对象的用法。 In this post,我发现虽然不鼓励使用eval(),但实际上将字符串作为对象/数组。代码现在可以正常运行。我将继续研究JSON选项。