Push values to array in jquery

You need to declare data inside the click handler, if it's declared as a global variable you are basically always modifying and adding the same data object to the array:

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

You are pushing the same object reference each time since you declared data outside of the click handler.

Change from :

var data={};
$("#addquotation").click(function () {

To

$("#addquotation").click(function () {
     var data={};// declare local variable