javascript - 将值推送到 jquery 中的数组

标签 javascript jquery arrays asp.net-mvc list

我有项目列表数据和空数组引号:

   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);
)};

我第一次添加

"test,45,testnotes,2016-02-03" Second time i 've added "test2,45.2,testnotes2,2016-02-05"

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

obj(0): "test2,45.2,testnotes2,2016-02-05" obj(1):"test2,45.2,testnotes2,2016-02-05"

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

请指教。谢谢

最佳答案

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

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/

相关文章:

javascript - Javascript 中数组的重载 [] 运算符

javascript - 检查何时使用鼠标中键双击元素

Javascript iPad、iPhone 和 Android - 如何获取页面的全宽和全高?

javascript - 如何使用 jQuery 在 <a> 中插入 <image>?

javascript - jQuery 检测键盘按下然后聚焦到文本框

javascript - 使用 jQuery .when .then

javascript - ESLint 说数组从未被修改,即使元素被插入数组

javascript - 将数组从代码隐藏例程传递到 javascript

c++ - 指针)是否有可能已经占据(ptr + 1)?

javascript - 如何让一个函数只调用自己一次?