javascript - 用localstorage存json物件的時候 希望實現每次點擊 把值一直疊加到儲存裡面 現在每次點擊會覆蓋掉之前的
習慣沉默
習慣沉默 2017-06-30 09:56:32
0
7
1130

這是儲存的時候的程式碼

    $(".top").click(function(){ 
        var contrastdata = new Object;
        contrastdata.Machinedata = $(this).parents('tr').find('td')[0].innerText;
        contrastdata.UserNamedata = $(this).parents('tr').find('td')[2].innerText;
        contrastdata.InstrumentIDdata = $(this).parents('tr').find('td')[4].innerText;
        localStorage.setItem('contrastdata',JSON.stringify(contrastdata)); 
    }); 

下面是取的時候

        var contrastdata = JSON.parse(localStorage.getItem('contrastdata'));
        var Machinedata = contrastdata.Machinedata;
        var UserNamedata = contrastdata.UserNamedata;
        var InstrumentIDdata = contrastdata.InstrumentIDdata;
習慣沉默
習慣沉默

全部回覆(7)
过去多啦不再A梦

你這想法不對,應該先從LocalStorage取出原來的值,然後將新資料疊加到原來的值中,然後再次存入LocalStorage。這樣就不會出現資料覆蓋了

阿神

你是想每個tr都存不同的item嗎?

習慣沉默

覆蓋是因為你每次存放時名字沒變
你可以改成這樣
var nums = 0;
$(".top").click(function(){

            var contrastdata = new Object;
            contrastdata.Machinedata = $(this).parents('tr').find('td')[0].innerText;
            contrastdata.UserNamedata = $(this).parents('tr').find('td')[2].innerText;
            contrastdata.InstrumentIDdata = $(this).parents('tr').find('td')[4].innerText;
            localStorage.setItem('contrastdata_'+nums,JSON.stringify(contrastdata)); 
            nums++;
        }); 

下邊取值的時候再根據nums的值循環
或者是改變數據結構,用一個對象存儲數據,每次點擊把數據加到對象裡面,然後把對象存進localstroage裡面

Ty80

先從localStorage取出資料轉換成對象,記得做防禦判斷,然後把想要存的值插入到取出來的對像中去,然後轉換成字串存入localStorage覆蓋原來的資料;

滿天的星座

先讀取,然後追加,再寫入。

// 读取已存入的数据;
// `|| []`是为了第一次存取时,初始化存入的数据结构,想要追加就得用数组
let temp = JSON.parse(localStorage.getItem('contrastdata')) || [];
// 追加数据
temp.push({
    Machinedata: 'abc',
    UserNamedata: 123
});
    
localStorage.setItem(temp);
学习ing

在一開始的時候先取值賦給變量,然後在點擊事件裡面去進行操作,數據暫時不需要直接去存儲,在跳轉頁面或者需要存儲的時候再進行存儲,不然每次點擊的時候存一下,然後取一下,很麻煩。

var contrastdata = JSON.parse(localStorage.getItem('contrastdata'));
if(!contrastdata){
   contrastdata = {};
}
$(".top").click(function(){
     contrastdata.Machinedata = $(this).parents('tr').find('td')[0].innerText;
     contrastdata.UserNamedata = $(this).parents('tr').find('td')[2].innerText;
     contrastdata.InstrumentIDdata = $(this).parents('tr').find('td')[4].innerText;
});

//页面做跳转或者需要存的时候再存储
localStorage.setItem('contrastdata',JSON.stringify(contrastdata));
phpcn_u1582

雷雷

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板