2017-08-31 57 views
0

Iteratiing通過localStorage的對象,我非常接近得到這個工作,但我找不到這個問題我有一個響應。我正在遍歷這個對象,我使用$ .each方法從localStorage中獲取了該對象,但出於某種原因,我始終爲所有這3個有價值的地方獲取第一個值(圖像值)。我期待着獲得標題和信息。任何幫助都會很棒。

$('#btn-profile-view').on('click', function(){ 
 
    if(localStorage.getItem('itemsArray')){ 
 
    var savedLocal = localStorage.getItem('itemsArray'); 
 
    console.log('here is savedLocal: ', savedLocal); 
 
    savedLocal = JSON.parse(savedLocal); 
 
    var savedLocalMap = savedLocal.map(function(obj){ 
 
     var favsResult = $('.favs-display-data'); 
 
     $.each(obj, function(index, key, value){ 
 
     console.log('hey im value 0:', value); 
 
     favsOutput = `<div class="col-lg-3 game"> 
 
        <div class="view view-first"> 
 
        <img src="${value}"/> 
 
        <div class="mask"> 
 
         <h2>${value}</h2> 
 
         <p>${value}</p> 
 
         <a href="#" class="info">♥</a> 
 
        </div> 
 
        </div> 
 
       </div>` 
 
     favsResult.append(favsOutput); 
 
     }); 
 
    }); 
 
    } 
 
});

+0

你能展示實際產出與預期產出嗎?這是一個有點不清楚 – neuhaus

+0

是,由於某種原因僅僅霎那,首先價值......所以,如果我的數組是「[{」 gameImg「:」 IMG/deathstranding.jpg「‘gameTitle’:‘死亡絞’,」的GameInfo 「:」死亡擱淺是一個即將到來的.....「}] ...只是抓住gameImg 3次,而不是抓住gameTitle和gameInfo ... – Lucky500

回答

2

如果你知道這些鍵應該使用它們:

favsOutput = `<div class="col-lg-3 game"> 
       <div class="view view-first"> 
       <img src="${obj['gameImg']}"/> 
       <div class="mask"> 
        <h2>${obj['gameTitle']}</h2> 
        <p>${obj['gameInfo']}</p> 
        <a href="#" class="info">♥</a> 
       </div> 
       </div> 
      </div>` 

如果不這樣做,遍歷散列的順序是隨機

另外,每個人在另一個答案中都有兩個參數。

+0

感謝Neuhas,由於某種原因obj ['gameTitle'] ,但我試過obj.gameTitle,並且工作得很好,出於某種原因,所有內容都附加了3次,所以也許我有一個太多的循環,但是你的答案並沒有實現,謝謝! – Lucky500

+1

@ Lucky500你需要刪除「each」循環 – neuhaus

0

jQuery的每次回調需要,只要我能看到的只有兩個參數:

$.each(obj, function(key, value){ 
} 

在這裏看到:http://api.jquery.com/jQuery.each/

也許這已經是問題嗎?