Javascript 从输入字段值创建JS数组

Javascript 从输入字段值创建JS数组,javascript,jquery,Javascript,Jquery,我有x个带有class='agency\u field'的输入字段。如何创建包含该类所有字段值的JS数组 使用jQuery时,会出现语法错误: $(“.agency_字段”)。每个(功能(索引) {agencies[]=$(this.val();}) 您正在为每个迭代创建一个新数组。尝试在每次调用之前实例化一个数组,并在每次迭代之前将其添加到数组中 var arr = []; $(".agency_field").each(function(index) { arr.push($(this).v

我有x个带有class='agency\u field'的输入字段。如何创建包含该类所有字段值的JS数组

使用jQuery时,会出现语法错误:

$(“.agency_字段”)。每个(功能(索引) {agencies[]=$(this.val();})


您正在为每个迭代创建一个新数组。尝试在每次调用之前实例化一个数组,并在每次迭代之前将其添加到数组中

var arr = []; $(".agency_field").each(function(index) { arr.push($(this).val()); });
arr
最终将包含您想要的内容。

您可以使用它,它可能更适合您的目的:

var values = $(".agency_field").map(function() {
    return this.value;
}).get();
alert(values.join(","));

您的代码将略微更改为:

var agencies = [];
$(".agency_field").each(function(index) { 
    agencies.push($(this).val()); 
});

首先需要创建一个数组,然后将每个值添加到该数组中:

var agencies = [];
$(".agency_field").each(function(index) { agencies.push($(this).val()) });

你已经习惯了像php这样的语言了?;) 在Javascript中,您将使用array.push()来附加到数组;所以

$(".agency_field").each(function(index) { agencies.push( $(this).val() ); });

天哪#%#-你们在一分钟内就得到了6个答案。很难击败,所以响应时间很长!哈哈,每个()回答五个,只有一个map()回答…@Šime-我不知道map()有多有名。每个()都随处可见,而且易于使用(更加熟悉)。我给出了karim的答案+1,因为文档中说map()在这个场景中特别有用。也就是说,对each()答案的爱在哪里?它们仍然是可以接受的答案,而且更具可读性。@karim79:以前从未见过。。。有趣的方法。这与每次推送的速度相比如何?是时候读一些api了,我想..@karim不需要
.join(“,”
)。当数组强制为字符串时,默认情况下会添加逗号。@James South-我无法想象典型应用程序的性能会有任何明显的差异。我之所以使用它,是因为它实际上是为了以一种简洁的方式从集合中提取属性而设计的,正如手册所说:“.map()方法对于获取或设置元素集合的值特别有用。”@Šime Vidas-我知道,我把它放在那里是为了强调我们得到的是一个数组。@karim:Qood to know。干杯@斯特夫,你不应该选择第一个答案。你应该选择最好的答案——在这种情况下是卡里姆的计票结果。
$(".agency_field").each(function(index) { agencies.push( $(this).val() ); });