javascript - Lorsque j'utilise localstorage pour stocker des objets json, j'espère superposer la valeur dans le stockage à chaque fois que je clique. Désormais, chaque clic écrasera le précédent.
習慣沉默
習慣沉默 2017-06-30 09:56:32
0
7
1133

Voici le code lors de la sauvegarde

    $(".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)); 
    }); 

C'est le moment de le récupérer

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

répondre à tous(7)
过去多啦不再A梦

Votre idée est fausse. Vous devez d'abord supprimer la valeur d'origine de LocalStorage, puis superposer les nouvelles données dans la valeur d'origine, puis les stocker à nouveau dans LocalStorage. De cette façon, il n'y aura pas d'écrasement de données

阿神

Voulez-vous tout le mondetr都存不同的item ?

習慣沉默

L'écrasement est dû au fait que le nom ne change pas à chaque fois que vous l'enregistrez
Vous pouvez le remplacer par ceci
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++;
        }); 

Lorsque vous prenez la valeur ci-dessous, effectuez une boucle basée sur la valeur de nums
ou modifiez la structure des données, utilisez un objet pour stocker les données, ajoutez les données à l'objet à chaque fois que vous cliquez, puis stockez l'objet dans le stockage local

Ty80

Prenez d'abord les données de localStorage et convertissez-les en objet. N'oubliez pas de porter des jugements défensifs, puis insérez la valeur que vous souhaitez enregistrer dans l'objet retiré, puis convertissez-la en chaîne et stockez-la dans localStorage pour écraser le données originales ;

滿天的星座

Lisez d'abord, puis ajoutez, puis écrivez.

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

Au début, attribuez d'abord la valeur à la variable, puis effectuez l'opération dans l'événement de clic. Les données n'ont pas besoin d'être stockées directement pour le moment. Elles seront stockées lorsque la page saute ou doivent être stockées. Sinon, il sera enregistré à chaque clic, puis retiré, c'est très gênant.

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
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));
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal