【问题标题】:jquery create array for many inputjquery为许多输入创建数组
【发布时间】:2017-11-01 08:55:48
【问题描述】:

我需要使用 jquery 从许多输入中创建数组。我需要这样的结果来自 console.log(arr);

[{size: "m", quantity: "1"},{size: "l", quantity: "2"}]

相反,由于循环,我得到了两个相同的输出。

[{size: "m", quantity: "1"},{size: "l", quantity: "2"},{size: "m", quantity: "1"},{size: "l", quantity: "2"}]

这是html的一部分

<input type="hidden" name="size" id="size1" value="m">
<input type="hidden" name="size" id="size2" value="l">
<input type="text" name="qty" value="1" style="width: 30px;">
<input type="text" name="qty" value="2" style="width: 30px;">

这是jquery

  $('#updatecart').click(function(){
    var values = $('input[name="qty"]');

    var myArray = $.map(values, function(element) {
      return { quantity: element.value};
      //  return element.value;
    });

    var arr = [];

    for (var i = 0; i < myArray.length; i++) {
      $('input[name="size"]').each(function(){
        var t = $(this).val();
        arr.push({ size: t, quantity:myArray[i].quantity });
      });

    }

    console.log(myArray);
    console.log(arr);

  });

提前致谢。

【问题讨论】:

    标签: jquery arrays loops


    【解决方案1】:

    i 添加到function(element),然后使用size: $('input[name="size"]:eq('+i+')').val()

    返回[{size: "m", quantity: "1"},{size: "l", quantity: "2"}]

    演示

    $('#updatecart').click(function() {
      var values = $('input[name="qty"]');
    
      var myArray = $.map(values, function(element,i) {
        return {
          size: $('input[name="size"]:eq('+i+')').val(),
          quantity: element.value
        };
        //  return element.value;
      });
      console.log(myArray);
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input type="hidden" name="size" id="size1" value="m">
    <input type="hidden" name="size" id="size2" value="l">
    <input type="text" name="qty" value="1" style="width: 30px;">
    <input type="text" name="qty" value="2" style="width: 30px;">
    
    <button id="updatecart">run</button>
    
    [{size: "m", quantity: "1"},{size: "l", quantity: "2"}]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-29
      • 2014-03-02
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多