我有项目列表data and empty array quotations:

   var data = {};
   var quotations = [];

我想用数据值填充quotations,每次我添加新数据时,它添加成功,但是所有数据值都获得最后一个值。

例如 :
 $("#addquotation").click(function () {
        debugger;
        var itemname = $("#itemname").val();
        var cost =parseFloat( $("#cost").val());
        var notes = $("#notes").val();
        var date = $("#date").val();


        data.Item = itemname;
        data.Cost = cost;
        data.Notes = notes;
        data.Date = date;

        quotations.push(data);
)};

我第一次添加



当我调试时,我得到的数据为:



似乎将最新版本附加到所有数据

请指教 。谢谢

最佳答案

您需要在点击处理程序中声明数据,如果将其声明为全局变量,那么您基本上总是在修改相同的数据对象并将其添加到数组中:

var quotations = [];

$("#addquotation").click(function () {
        debugger;
        var data = {};
        var itemname = $("#itemname").val();
        var cost =parseFloat( $("#cost").val());
        var notes = $("#notes").val();
        var date = $("#date").val();


        data.Item = itemname;
        data.Cost = cost;
        data.Notes = notes;
        data.Date = date;

        quotations.push(data);
)};

关于javascript - 在jQuery中将值推送到数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36119159/

10-10 00:22