我有这个片段。结果我看到一个错误:分配中的左侧无效。
var arr = [ "text1", "text2", "text3", "text4" ];
jQuery.each(arr, function(index, value) {
this = jQuery("#sc-dialog ."+value).val();
});
有没有人可以指出我如何解决这个问题? 感谢。
这是更新 我需要变量'text'将在循环中包含数字:text1,text2,text3 ...我已经这样做了:
var arr = [ "1", "2", "3", "4" ];
jQuery.each(arr, function(index, value) {
var text + index = jQuery("#sc-dialog .text"+value).val();
});
但是我收到了一个错误:意外的标识符。问题出在这里:var text + index
答案 0 :(得分:1)
试试这样:
jQuery.each(arr, function(index, value) {
arr[index] = jQuery("#sc-dialog ."+value).val();
});
答案 1 :(得分:0)
您不能将'this'用作变量名称。尝试类似的事情:
var arr = [ "text1", "text2", "text3", "text4" ];
jQuery.each(arr, function(index, value) {
var dialogValue = jQuery("#sc-dialog ."+value).val();
});
答案 2 :(得分:0)
在+
语句中输入var
变量名后面是语法错误:
var text + index = jQuery("#sc-dialog .text"+value).val()
有效的变量声明将是变量名称:
var text;
或带有指定值的变量名称:
var text = jQuery("#sc-dialog .text"+value).val();
分配的值可以包含+
或其他运算符:
var x = y + z - 5 * (a + b);
在单个var
语句中,您可以使用逗号分隔多个带或不带值的变量:
var i, j = 0, k, text = jQuery("#sc-dialog .text"+value).val(), x = 12 + 4;
当您使用标准for
循环实现相同的操作时,遵循简单模式(在本例中为数组元素索引加1)的数字数组是没有意义的。 编辑:从您的评论中看起来您似乎不想处理循环中的值,您希望存储这些值以供以后使用。你提到想要text1
,text2
等等,但是如果你需要单独引用它们,听起来你的各种文本都不是真正的一个组,并且在一个组中处理它们是没有意义的。循环。但是如果你坚持,那么你应该将值存储在一个数组中:
var i,
text = [];
for (i = 1; i <=4; i++) {
text[i] = jQuery("#sc-dialog .text"+i).val();
}
// later in your code
// text[1] is first value,
// text[2] is second value, etc
请注意,JS数组索引是从零开始的,数组.length
比最高索引多一个,但是您的字段编号从1开始 - 如果您稍后遍历{{1},请记住这一点} array。