.each循环中的javascript .push方法仅返回一个数组

亚当

我试图遍历复选框组,如果每个组都至少选中了一个框,我想将该产品信息添加到数组(upperOrder)中。我的代码的问题在于,它仅添加了最后一个选中的复选框组(或覆盖了之前添加的组)。

基本上,我想要一个多维数组,其主数组为upperOrder,子数组为每种产品的信息。

感谢并感谢任何人的帮助,或者如果有更好的方法来完成此操作,我将不胜感激任何建议!

的HTML:

<form class="upperCheckboxForm" data-prodid="100" data-prodname="adams" id="group1">
<fieldset data-role="controlgroup">
    <legend>Group 1:</legend>
    <input type="checkbox" name="checkbox-v-2a" id="checkbox-v-2a" value="one" data-tooth-position="UR1">
    <label for="checkbox-v-2a">One</label>
    <input type="checkbox" name="checkbox-v-2b" id="checkbox-v-2b" value="two" data-tooth-position="UR2">
    <label for="checkbox-v-2b">Two</label>
    <input type="checkbox" name="checkbox-v-2c" id="checkbox-v-2c" value="three" data-tooth-position="UR3">
    <label for="checkbox-v-2c">Three</label>
</fieldset>
</form>

<form class="upperCheckboxForm" data-prodid="101" data-prodname="lap" id="group2">
<fieldset data-role="controlgroup">
    <legend>Group 2:</legend>
    <input type="checkbox" name="checkbox-v-2a" id="checkbox-v-2a" value="four" data-tooth-position="UR4">
    <label for="checkbox-v-2a">Four</label>
    <input type="checkbox" name="checkbox-v-2b" id="checkbox-v-2b" value="five" data-tooth-position="UR5">
    <label for="checkbox-v-2b">Five</label>
    <input type="checkbox" name="checkbox-v-2c" id="checkbox-v-2c" value="six" data-tooth-position="UR6">
    <label for="checkbox-v-2c">Six</label>
</fieldset>
</form>

<button id="submitPrintForm">Click</button>

jQuery的:

$('#submitPrintForm').on('click', function() {

var upperOrder      = [];

$('.upperCheckboxForm').each(function() {

    var $prodName           = $(this).data('prodname'),
        $prodId         = $(this).data('prodid'),
        $prodUrl            = $(this).attr('id'),
        $prodPosition       = [];

    $('#'+ $prodUrl +' input:checked').each(function() {
      $prodPosition.push($(this).data('tooth-position'));
    })

    if($prodPosition.length > 0) {
        upperOrder.push = ([$prodName, $prodId, $prodPosition.length, $prodPosition]);
    }
})
console.log(upperOrder);
});
原因

推是一种方法。这样称呼它:

upperOrder.push([$prodName, $prodId, $prodPosition.length, $prodPosition])

当您分配某些东西给upperOrder.push您时,实际上是在覆盖方法push,这将导致对其的后续调用失败。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

for循环仅返回bash脚本中的第一个数组元素

在For循环中创建JavaScript数组

在ʻEnum.each`循环中累积一个列表

带for循环的Javascript数组,仅返回最后一个元素

多维javascript数组,仅影响forEach中的最后一个数组

如何使用数组元素作为循环中另一个数组的索引?

循环中的数据库查询仅返回一个空数组

在.each循环中创建一个新数组

Javascript:在For循环中等待一个(或多个)条件

无法在For Each循环中编辑数组数据

JavaScript forEach循环使用.push()将一个数组分成其他数组

从另一个数组返回一个N个元素的新数组的简便方法,该数组填充了迭代值?香草JavaScript

使用'Each'方法在do循环中创建一个新数组

JavaScript:在for循环中保留一个值

在for循环中构造时仅返回数组的最后一个值

在for-each循环中如何基于元素值从一个分支返回元素值

遍历2个数组仅循环第一个元素

xslt:在for-each循环中仅循环一次

Javascript在for循环中创建数组

在一个 .each 循环中查询多个表

.each() 循环中的 JavaScript 数组不添加新元素

如何仅使用 Javascript 一次显示一个数组元素?

使用 forEach 通过 push 方法创建另一个数组,但在循环结束后数组为空

嵌套循环:最后一个循环总是返回最后一个数组对象

在 Javascript 中的 for 循环中每 12 个数字后添加一个换行符

异步 forEach 循环返回一个数组

如何在for循环中附加一个数组,每个循环都会获得新的输出?

循环遍历 PHP 中的一组数组以仅生成一个数组

JavaScript - 从一个数组返回单个值,在调用另一个数组的 for-of 循环内