2016-03-25 10 views
1

ekleme yeni bir nesne eskilerin </p> <p><a href="https://i.stack.imgur.com/Ej7jH.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Ej7jH.jpg" alt="enter image description here"></a></p> <p>


 
var product,  
 
    numberof, 
 
    quantity, 
 
    price, 
 
    localStorageProd; 
 

 
function storeProdStorage(product , numberof, quantity, price) { 
 
    var itemsArray = []; 
 
    newItem = { 
 
     product : product , 
 
     numberof : numberof , 
 
     quantity : quantity , 
 
     price : price 
 
    }; 
 
    
 
    if (localStorage["prodbank"] != null) { 
 
     var localStorageContentObject = JSON.parse(localStorage["prodbank"]); 
 
     itemsArray.push(localStorageContentObject); 
 

 
     for(var i = 0; i < itemsArray.length ; i++) { 
 
     if(itemsArray[i].product == product) { 
 
      itemsArray[i].quantity = quantity; 
 
      itemsArray[i].price = price; 
 
      localStorage.setItem('prodbank', JSON.stringify(itemsArray[i])); 
 
     } else { 
 
      itemsArray.push(newItem); 
 
     localStorage.setItem('prodbank', JSON.stringify(itemsArray)); 
 
     } 
 
     }  
 
      
 
    } else { 
 
     localStorage.setItem('prodbank', JSON.stringify(newItem)); 
 
    } 
 
} 
 
    
 
$(function() { 
 
    $(".quantity-slider").slider({ 
 
     range: "min",  
 
     value: 50, 
 
     min: 50, 
 
     max: 1000, 
 
     step: 50, 
 
     
 
     slide: function(e,ui) { 
 
      var quant = $('.quantity').html(commaSeparateNumber((ui.value) *10)); 
 
      var price = $('.price').html(ui.value); 
 
      if($('.price').html() == "50") { 
 
       $('.quantity').html(250); 
 
      } 
 
     
 
     product = $(".pricing-title").html(); 
 
     numberof = $(".pricing-code .form-section h3").contents().get(0).nodeValue; 
 
     quantity = $(".pricing-code .form-section h3 .quantity").eq(0).html(); 
 
     price = $(".pricing-code .form-section h3 .price").eq(0).html(); 
 
      
 
     storeProdStorage(product , numberof, quantity, price); 
 
    } 
 
    }); 
 

 
    $('.quantity').html(($(".quantity-slider").slider("value"))*5); 
 
}); 
 
    
 
I localStorage dizideki itilir ve saklanır içinde nesneleri depolamak ediyorum değer bir aralık kaydırma sahip yazar . Bu, onları localStorage içinde zorlamak istediğim biçimdir.

[

{ "product":"Twitter Followers","numberof":"Number of Followers: ","quantity":"5,500","price":"550" }, 
{ "product":"Facebook Page Likes","numberof":"Number of Likes: ","quantity":"1,000","price":"100" }, 
{ "product":"Instagram Followers","numberof":"Number of Followers: ","quantity":"2,500","price":"250" }, 
{ "..":"..","..":"..: ","..":"..","..":".." } 

]

Her zaman kullanıcı örneğin "Facebook Sayfası Beğeni" satın almaya çalışıyor ürünün adıyla yeni gelecek değerler kontrol aralığı kaydırıcı hamle," Instagram Takipçisi. Eğer isim aynı ise, sadece miktar ve yerel depolamadaki fiyat için değerleri güncellemeye çalışıyorum. Yerel depolama alanında ad yoksa, onu eklemek istiyorum. Sorun şu ki her şey dağınıklığa dönüşüyor. Kaydırıcıyı hareket ettirdiğimde, "Facebook Page Likes" sayfasında söyleyebildiğimiz zaman yerel depolamadaki değerleri günceller, ancak kaydırıcıyı kaydırdığımda yeni nesneyi üzerine yazdığımda başka bir sayfaya (örn. "Twitter Takipçileri") giderim. eskileri ve öncekilere eklemiyor.

Bu, sayfalarda gezinirken ve kaydırıcıyı çalıştırırken konsolda ne aldığımı gösterir. Her seferinde yerel depoda sadece bir nesne korunur ve bir önceki tamamen kaldırılır.

Depolama {prodbank: "{" ürün ":" Facebook Sayfası Beğeni "," numberof ":" Beğenilenlerin Sayısı: "," ad ":" 1.000 "," fiyat ":" 100 "}", uzunluk : 1}

Eski nesnesinin değerlerini tamamen çıkarmamak için eklemesini ve korumasını istiyorum. Mesela istediğim bu. Burada twitter takipçileri için değerlere sahip ikinci nesnenin var olduğunu ve depolama alanı içine eklendiğini görebilirsiniz.

Depolama {prodbank: "{" ürün ":" Facebook Page Likes "," numberof ":" Beğenilenlerin Sayısı: "," miktar ":" 1.000 "," fiyat ":" 100 "}", "{" ürün ":" Twitter İzlemeleri "," numberof ":" Takipçilerin Sayısı: "," ad ":" 2,000 " , "price": "price": "200"} ", length: 2}

cevap

2

Yeni değerlerin üzerine yazmak yerine yazılmasını istiyorsanız, = yerine += kullanmanız gerekir. = sağ değeriyle sol değerini yerini alacak iken += sol değerine sağ değer katacak olmasıdır

deneyin: is

itemsArray[i].quantity += quantity; 
itemsArray[i].price  += price; 

eğer benim anlayış elde etmeye çalıştığınız şey doğru.

+0

Teşekkürler, ama aradığım şey değil. Her nesnenin değerleri doğru hesaplanır (sorun değildir). Bu hesaplama ile ilgili değil. Yerel depoda bulunmayan her yeni nesneyi eklemek istiyorum, ama olmaz. Aslında eklendi ama eski olanın üzerine yazılıyor. Son dört paragrafla soruyu düzenledim çünkü yanıltıcı –

İlgili konular

 İlgili konular