【发布时间】:2015-10-30 00:08:24
【问题描述】:
当用户选择一个单选按钮时,它的 ID 用于通过 jQuery 的 .change() 函数访问一个 javascript 数组,然后是一个 $.each 函数来遍历内容并取消隐藏表单控件。但是,当我运行此代码时,我得到:
未捕获的类型错误:无法使用“in”运算符在程序员中搜索“长度”
**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 字符串的每个字母。它没有将字符串与变量数组名称相关联。
解决方案?
【问题讨论】:
-
不确定您想要做什么,但您使用的是带有字符串 id(位置)的 .each
-
"$.each 函数循环遍历内容并取消隐藏表单控件"循环遍历哪些内容?
-
$.each 函数将遍历数组的内容。所以在这种情况下,它应该循环通过“blah1”、“blah2”等。
标签: javascript jquery arrays for-loop