Jquery 我想把元素推入数组

Jquery 我想把元素推入数组,jquery,arrays,Jquery,Arrays,我想得到所有有值的输入字段都采用这种格式 "name": [{ "id": 3, "qty": 2 }, { "id": 4, "qty": 5 }] 我的脚本 $("#qty-"+item.id).keyup(function(){ var qty = $("#qty-"+item.id).val(); var price = $("#price-"+item.id

我想得到所有有值的输入字段都采用这种格式

"name": [{
  "id": 3,
  "qty": 2
}, {
  "id": 4,
  "qty": 5
}]
我的脚本

$("#qty-"+item.id).keyup(function(){
                            var qty = $("#qty-"+item.id).val();
                            var price = $("#price-"+item.id).val();
                            var ids = $("#ids-"+item.id).val();
                            var total = qty * price;
                            $("#amount-"+item.id).val(total);
                            var obj={};
                            var name = [];
                            obj.id = ids;
                            obj.qty = qty;
                            name.push(obj);
                            console.log(name);
                            /* Sum of Total of all amount */
                                var add = 0;
                                $(".amount").each(function() {
                                    add += Number($(this).val());
                                });
                                console.log(add);
                                $("#aproxTotal").text("Aprox Total is : " + add);
                            /* Sum of Total of all amount */
                        });
0:
id:"14"
qty:"1"
    <div id="price-calculation-view">
   <div id="price_calculation">
      <div class="col-lg-2 main"><input type="text" value="Newspaper" readonly="" class="form-control"></div>
      <div class="col-lg-2 main"><input type="text" name="price" id="price-3" value="9" readonly="" class="form-control" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-2 main"><input type="text" value="" name="qty" id="qty-3" class="form-control qty" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-2 main"><input type="text" name="amount" id="amount-3" value="" readonly="" class="form-control amount" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-3 main"><input type="text" name="id" id="ids-3" value="3" readonly="" class="form-control"></div>
   </div>
   <div id="price_calculation">
      <div class="col-lg-2 main"><input type="text" value="Cardboards (flattened)" readonly="" class="form-control"></div>
      <div class="col-lg-2 main"><input type="text" name="price" id="price-4" value="5" readonly="" class="form-control" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-2 main"><input type="text" value="" name="qty" id="qty-4" class="form-control qty" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-2 main"><input type="text" name="amount" id="amount-4" value="" readonly="" class="form-control amount" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-3 main"><input type="text" name="id" id="ids-4" value="4" readonly="" class="form-control"></div>
   </div>
   <div id="price_calculation">
      <div class="col-lg-2 main"><input type="text" value="Glass Bottles (Unbroken)" readonly="" class="form-control"></div>
      <div class="col-lg-2 main"><input type="text" name="price" id="price-5" value="0.4" readonly="" class="form-control" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-2 main"><input type="text" value="" name="qty" id="qty-5" class="form-control qty" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-2 main"><input type="text" name="amount" id="amount-5" value="" readonly="" class="form-control amount" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-3 main"><input type="text" name="id" id="ids-5" value="5" readonly="" class="form-control"></div>
   </div>
   <div id="price_calculation">
      <div class="col-lg-2 main"><input type="text" value="Plastic bottles" readonly="" class="form-control"></div>
      <div class="col-lg-2 main"><input type="text" name="price" id="price-6" value="11" readonly="" class="form-control" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-2 main"><input type="text" value="" name="qty" id="qty-6" class="form-control qty" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-2 main"><input type="text" name="amount" id="amount-6" value="" readonly="" class="form-control amount" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-3 main"><input type="text" name="id" id="ids-6" value="6" readonly="" class="form-control"></div>
   </div>

</div>
在控制台中,我只以这种方式获得了最后一个enter值

输出

$("#qty-"+item.id).keyup(function(){
                            var qty = $("#qty-"+item.id).val();
                            var price = $("#price-"+item.id).val();
                            var ids = $("#ids-"+item.id).val();
                            var total = qty * price;
                            $("#amount-"+item.id).val(total);
                            var obj={};
                            var name = [];
                            obj.id = ids;
                            obj.qty = qty;
                            name.push(obj);
                            console.log(name);
                            /* Sum of Total of all amount */
                                var add = 0;
                                $(".amount").each(function() {
                                    add += Number($(this).val());
                                });
                                console.log(add);
                                $("#aproxTotal").text("Aprox Total is : " + add);
                            /* Sum of Total of all amount */
                        });
0:
id:"14"
qty:"1"
    <div id="price-calculation-view">
   <div id="price_calculation">
      <div class="col-lg-2 main"><input type="text" value="Newspaper" readonly="" class="form-control"></div>
      <div class="col-lg-2 main"><input type="text" name="price" id="price-3" value="9" readonly="" class="form-control" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-2 main"><input type="text" value="" name="qty" id="qty-3" class="form-control qty" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-2 main"><input type="text" name="amount" id="amount-3" value="" readonly="" class="form-control amount" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-3 main"><input type="text" name="id" id="ids-3" value="3" readonly="" class="form-control"></div>
   </div>
   <div id="price_calculation">
      <div class="col-lg-2 main"><input type="text" value="Cardboards (flattened)" readonly="" class="form-control"></div>
      <div class="col-lg-2 main"><input type="text" name="price" id="price-4" value="5" readonly="" class="form-control" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-2 main"><input type="text" value="" name="qty" id="qty-4" class="form-control qty" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-2 main"><input type="text" name="amount" id="amount-4" value="" readonly="" class="form-control amount" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-3 main"><input type="text" name="id" id="ids-4" value="4" readonly="" class="form-control"></div>
   </div>
   <div id="price_calculation">
      <div class="col-lg-2 main"><input type="text" value="Glass Bottles (Unbroken)" readonly="" class="form-control"></div>
      <div class="col-lg-2 main"><input type="text" name="price" id="price-5" value="0.4" readonly="" class="form-control" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-2 main"><input type="text" value="" name="qty" id="qty-5" class="form-control qty" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-2 main"><input type="text" name="amount" id="amount-5" value="" readonly="" class="form-control amount" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-3 main"><input type="text" name="id" id="ids-5" value="5" readonly="" class="form-control"></div>
   </div>
   <div id="price_calculation">
      <div class="col-lg-2 main"><input type="text" value="Plastic bottles" readonly="" class="form-control"></div>
      <div class="col-lg-2 main"><input type="text" name="price" id="price-6" value="11" readonly="" class="form-control" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-2 main"><input type="text" value="" name="qty" id="qty-6" class="form-control qty" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-2 main"><input type="text" name="amount" id="amount-6" value="" readonly="" class="form-control amount" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-3 main"><input type="text" name="id" id="ids-6" value="6" readonly="" class="form-control"></div>
   </div>

</div>
如何获得所有文件只有价值。如果我使用每个函数,它将显示所有甚至空字段

下面给出的我的HTML

$("#qty-"+item.id).keyup(function(){
                            var qty = $("#qty-"+item.id).val();
                            var price = $("#price-"+item.id).val();
                            var ids = $("#ids-"+item.id).val();
                            var total = qty * price;
                            $("#amount-"+item.id).val(total);
                            var obj={};
                            var name = [];
                            obj.id = ids;
                            obj.qty = qty;
                            name.push(obj);
                            console.log(name);
                            /* Sum of Total of all amount */
                                var add = 0;
                                $(".amount").each(function() {
                                    add += Number($(this).val());
                                });
                                console.log(add);
                                $("#aproxTotal").text("Aprox Total is : " + add);
                            /* Sum of Total of all amount */
                        });
0:
id:"14"
qty:"1"
    <div id="price-calculation-view">
   <div id="price_calculation">
      <div class="col-lg-2 main"><input type="text" value="Newspaper" readonly="" class="form-control"></div>
      <div class="col-lg-2 main"><input type="text" name="price" id="price-3" value="9" readonly="" class="form-control" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-2 main"><input type="text" value="" name="qty" id="qty-3" class="form-control qty" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-2 main"><input type="text" name="amount" id="amount-3" value="" readonly="" class="form-control amount" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-3 main"><input type="text" name="id" id="ids-3" value="3" readonly="" class="form-control"></div>
   </div>
   <div id="price_calculation">
      <div class="col-lg-2 main"><input type="text" value="Cardboards (flattened)" readonly="" class="form-control"></div>
      <div class="col-lg-2 main"><input type="text" name="price" id="price-4" value="5" readonly="" class="form-control" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-2 main"><input type="text" value="" name="qty" id="qty-4" class="form-control qty" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-2 main"><input type="text" name="amount" id="amount-4" value="" readonly="" class="form-control amount" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-3 main"><input type="text" name="id" id="ids-4" value="4" readonly="" class="form-control"></div>
   </div>
   <div id="price_calculation">
      <div class="col-lg-2 main"><input type="text" value="Glass Bottles (Unbroken)" readonly="" class="form-control"></div>
      <div class="col-lg-2 main"><input type="text" name="price" id="price-5" value="0.4" readonly="" class="form-control" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-2 main"><input type="text" value="" name="qty" id="qty-5" class="form-control qty" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-2 main"><input type="text" name="amount" id="amount-5" value="" readonly="" class="form-control amount" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-3 main"><input type="text" name="id" id="ids-5" value="5" readonly="" class="form-control"></div>
   </div>
   <div id="price_calculation">
      <div class="col-lg-2 main"><input type="text" value="Plastic bottles" readonly="" class="form-control"></div>
      <div class="col-lg-2 main"><input type="text" name="price" id="price-6" value="11" readonly="" class="form-control" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-2 main"><input type="text" value="" name="qty" id="qty-6" class="form-control qty" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-2 main"><input type="text" name="amount" id="amount-6" value="" readonly="" class="form-control amount" onkeypress="return isNumber(event)"></div>
      <div class="col-lg-3 main"><input type="text" name="id" id="ids-6" value="6" readonly="" class="form-control"></div>
   </div>

</div>


值是从api动态提交的,如何实现这一点???

问题是您持有的var哈希数组不是全局的,因此每次执行var name=[]时,它都会重置它

将var name=[]置于keyup函数外部

var name = [];

$("#qty-"+item.id).keyup(function(){
                        var qty = $("#qty-"+item.id).val();
                        var price = $("#price-"+item.id).val();
                        var ids = $("#ids-"+item.id).val();
                        var total = qty * price;
                        $("#amount-"+item.id).val(total);
                        var obj={};
                        obj.id = ids;
                        obj.qty = qty;
                        name.push(obj);
                        console.log(name);
                        /* Sum of Total of all amount */
                            var add = 0;
                            $(".amount").each(function() {
                                add += Number($(this).val());
                            });
                            console.log(add);
                            $("#aproxTotal").text("Aprox Total is : " + add);
                        /* Sum of Total of all amount */
                    });

看小提琴,你只需要调整它

请提供html代码也为更好的答案。链接:这有点难理解,因为我认为这是语言障碍。请详细说明并展示示例。检查我更新的问题对不起,我弄错了,这是键控功能。我会编辑。仍然一样,只是它不会显示所有输入的值,它只会显示当前值。JAX只会返回文本框的值。这是一样的,您正在初始化add inside keyup函数。所有需要传播的信息都需要在函数外部初始化。如何在函数外部使用并以该格式获取所有值