0

我有这个片段。结果我看到一个错误:分配中的左侧无效。

var arr = [ "text1", "text2", "text3", "text4" ];
    jQuery.each(arr, function(index, value) {
        this = jQuery("#sc-dialog ."+value).val();
});

有谁可以指点我如何解决这个问题?谢谢。

这是一个更新 ,我需要变量“文本”在循环中包含数字:文本 1、文本 2、文本 3 ......我已经做到了:

var arr = [ "1", "2", "3", "4" ];
jQuery.each(arr, function(index, value) {
        var text + index = jQuery("#sc-dialog .text"+value).val();
});

但我收到一个错误:意外的标识符。问题出在这里:var text + index

4

3 回答 3

1

试试这样:

jQuery.each(arr, function(index, value) {
    arr[index] = jQuery("#sc-dialog ."+value).val();
});
于 2012-07-14T10:26:10.830 回答
0

您不能使用“this”作为变量名。尝试类似:

var arr = [ "text1", "text2", "text3", "text4" ];
    jQuery.each(arr, function(index, value) {
        var dialogValue = jQuery("#sc-dialog ."+value).val();
});
于 2012-07-14T10:53:16.283 回答
0

在你的变量名后面放一个+是你var语句中的语法错误:

var text + index = jQuery("#sc-dialog .text"+value).val()

有效的变量声明将是变量名本身:

var text;

或者带有赋值的变量名:

var text = jQuery("#sc-dialog .text"+value).val();

被分配的值可以有 a+或其他运算符:

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 开始 - 如果您稍后循环遍历text数组,请记住这一点。

于 2012-07-14T12:19:08.163 回答