带有数组错误的jQuery循环

jQuery loop with an array error

本文关键字:jQuery 循环 错误 数组      更新时间:2023-09-29

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

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

这样尝试:

jQuery.each(arr, function(index, value) {
    arr[index] = jQuery("#sc-dialog ."+value).val();
});

在变量名后面放一个+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)是没有意义的编辑:从您的评论来看,您似乎不想处理循环中的值,您想存储这些值以备将来使用。你提到想要text1text2等,但如果你需要单独引用它们,听起来你的各个文本区域并不是一个真正的组,在循环中处理它们根本没有意义。但如果你坚持,那么你应该将值存储在一个数组中:

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数组上循环,请记住这一点。

不能将"this"用作变量名。试试这样的东西:

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