javascript - 用localstorage存json對象的時候 希望實現每次點擊 把值一直疊加到儲存里面 現在每次點擊會覆蓋掉之前的
問題描述
這是存的時候的代碼
$('.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;
問題解答
回答1:你這思路不對,應該先從LocalStorage取出原來的值,然后將新數據疊加到原來的值中,然后再次存入LocalStorage。這樣就不會出現數據覆蓋了
回答2:你是想每個tr都存不同的item嗎?
回答3:覆蓋是因為你每次存儲時名字沒變你可以改成這樣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里面
回答4:先從localStorage取出數據轉換成對象,記得做防御判斷,然后把想要存的值插入到取出來的對象中去,然后轉換成字符串存入localStorage覆蓋原來的數據;
回答5:先讀取,然后追加,再寫入。
// 讀取已存入的數據;// `|| []`是為了第一次存取時,初始化存入的數據結構,想要追加就得用數組let temp = JSON.parse(localStorage.getItem(’contrastdata’)) || [];// 追加數據temp.push({ Machinedata: ’abc’, UserNamedata: 123}); localStorage.setItem(temp);回答6:
在一開始的時候先取值賦給變量,然后在點擊事件里面去進行操作,數據暫時不需要直接去存儲,在跳轉頁面或者需要存儲的時候再進行存儲,不然每次點擊的時候存一下,然后取一下,很麻煩。
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));回答7:
var contrastdata = JSON.parse(localStorage.getItem(’contrastdata’)),contrastdata1={},contrastdataArr=[];//如果localStorage.getItem(’contrastdata’)存在值,就先添加進數組里面if(contrastdata){ contrastdataArr.push(contrastdata)}$('.top').click(function(){ //初始化contrastdata1臨時變量 var contrastdata1={}; //設置contrastdata1 contrastdata1.Machinedata = $(this).parents(’tr’).find(’td’)[0].innerText; contrastdata1.UserNamedata = $(this).parents(’tr’).find(’td’)[2].innerText; contrastdata1.InstrumentIDdata = $(this).parents(’tr’).find(’td’)[4].innerText; //把contrastdata1添加進contrastdataArr; contrastdataArr.push(contrastdata1)});//頁面關閉時把contrastdataArr存儲進localStorage(contrastdata)localStorage.setItem(’contrastdata’,JSON.stringify(contrastdataArr));
相關文章:
1. 哪位大神知道MySql怎么修改多行多列的數據?求指點2. 這是什么情況???3. 編輯管理員信息時,為什么沒有修改過的內容會為空?4. phpadmin的數據庫,可以設置自動變化時間的變量嗎?就是不需要接收時間數據,自動變化5. mysql - thinkphp5 在MAC電腦本地正常,部署LINUX服務器之后,模型不存在6. 老哥們求助啊7. javascript - 百度圖片切換圖片時url會改變,但無刷新,沒用hash,IE8也支持,請問是用了什么技術?8. PHP類封裝的插入數據,總是插入不成功,返回false;9. APP上傳到電腦服務器,出現數據上傳不完整的問題10. 求救一下,用新版的phpstudy,數據庫過段時間會消失是什么情況?
