Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Foreach循环javascript失败_Javascript_Jquery - Fatal编程技术网

Foreach循环javascript失败

Foreach循环javascript失败,javascript,jquery,Javascript,Jquery,为什么每条语句都会导致代码中断?我还必须用javascript设置索引吗 var email = []; email['update'] = true; email['e_case_id'] = $("#e_case").val(); var i = 0; $.each($('.rowChecked'), function() { email['e_attachments'][i] = $(this).attr('id'); i++; }); 首先,电子邮件应该是对象文字

为什么每条语句都会导致代码中断?我还必须用javascript设置索引吗

var email = [];

email['update'] = true;
email['e_case_id'] = $("#e_case").val();

var i = 0;

$.each($('.rowChecked'), function() {
    email['e_attachments'][i] = $(this).attr('id');
    i++;
});
首先,电子邮件应该是对象文字,而不是数组文字:

var email = {};
其次,您在尝试使用电子邮件之前没有定义电子邮件['e_attachments']。这可能是阻止它工作的原因。尝试添加

email['e_attachments'] = [];
在每个美元之前

顺便说一句,您可以在这种情况下使用,即:

email['e_attachments'] = $.map($('.rowChecked'), function (el) { 
    return $(el).attr('id'); 
});
而不是你的每一美元。或者更好:

email['e_attachments'] = $('.rowChecked').map(function () { 
    return $(this).attr('id'); 
}
首先,电子邮件应该是对象文字,而不是数组文字:

var email = {};
其次,您在尝试使用电子邮件之前没有定义电子邮件['e_attachments']。这可能是阻止它工作的原因。尝试添加

email['e_attachments'] = [];
在每个美元之前

顺便说一句,您可以在这种情况下使用,即:

email['e_attachments'] = $.map($('.rowChecked'), function (el) { 
    return $(el).attr('id'); 
});
而不是你的每一美元。或者更好:

email['e_attachments'] = $('.rowChecked').map(function () { 
    return $(this).attr('id'); 
}

您在控制台中有任何错误吗?另外,.each的函数可以获取索引、值,所以您甚至不需要i++在其中。仅声明functioni,v{…}Javascript不支持关联数组。所以你不能简单地用email['update']=true;正如下面一些答案中所讨论的,您可以使用文字对象,如关联数组:myLiteralObject={};myLiterObject[AssociationVestyleKey]=无论什么@迈克:实际上它无论如何都能工作,因为数组也是一个对象。除了代码看起来像是在尝试遍历附件列表之外。这看起来不太好right@Claudiu:是的,它会一直工作,直到您尝试在数组中循环,因为each方法只会在数组项中循环,而不会在对象属性中循环。console中是否出现任何错误?另外,.each的函数可以获取索引、值,所以您甚至不需要i++在其中。仅声明functioni,v{…}Javascript不支持关联数组。所以你不能简单地用email['update']=true;正如下面一些答案中所讨论的,您可以使用文字对象,如关联数组:myLiteralObject={};myLiterObject[AssociationVestyleKey]=无论什么@迈克:实际上它无论如何都能工作,因为数组也是一个对象。除了代码看起来像是在尝试遍历附件列表之外。这看起来不太好right@Claudiu:是的,它会一直工作,直到您尝试在数组中循环,因为each方法只会在数组项中循环,而不会在对象属性中循环。