2017-01-01 94 views
0

我從服務器請求數據,如果我發佈新的數據我想顯示舊數據+加新的,但瀏覽器代替,這是我所得到的:入門剛剛更新列表

$(document).ready(function() { 
    loadpost() 
}); 

function loadpost() { 
    $.ajax({ 
     url: '/home/_loading_process/', 
     dataType: 'json', 
     type: 'GET' 
     }) 
     .done(function(data) { 
      var dataArray = []; 

      $.each(data.posts, function(i) { 
      dataArray.push(data.posts[i].comment); 
      }); 

      console.log(dataArray); 
      $.each(dataArray, function(i) { 
       $('div').clone.appendTo('anotherdiv'); 
      } 
      }); 
     }; 

// output 
// [1] 
// [1, 2] 
// [1, 2, 3] 

我怎樣才能得到它只是顯示更新的列表,而不是顯示舊的和更新的同時是這樣的:

// [1, 2] 

// output 
// [1] 

發佈新的數據後

不:

// [1] 
// [1, 2] 
+0

不能肯定什麼要求?在'javascript'問題處,每次調用'loadPost'時都會創建一個新數組。您是否嘗試在'loadPost'調用之外創建一個數組,然後將新元素推送到單個數組? – guest271314

+0

在我試圖使用.clone之前,不使用.html,因爲我在html文件中有很多代碼。我希望每次用戶發佈新數據只是在瀏覽器上顯示一個列表,但是我得到的行爲與來自控制檯的行爲相同 – quechon

+0

@ guest271314是的,聽起來像我需要的 – quechon

回答

0

正如JJJ說,你不能改變的控制檯輸出,但如果你真的想存儲的更新列表,你應該從服務器端做到這一點,如果你不能改變的代碼,你可以存儲對象然後迭代並更新數組。

$.ajax({ 
    url: 'yourURL', 
    method: 'yourMethod', 
    dataType: 'yourDataType', 
    success: function(data){ 
     dataArray = []; 
     $.each(data.posts, function(index){ 
       dataArray.push(this.comment); 
     }); 
     /* Iterate in the dataArray and append the elements in 
     * HTML nodes 
     */ 
    } 
}); 
1

你正在創建在每次調用loadPostdataArray。定義dataArray以外的loadPost函數。在每個呼叫中​​通過dataArrayloadPost或者全局定義dataArray.push()到相同陣列的新元素。

$(document).ready(function(){ 
    const dataArray = []; 
    loadpost(dataArray); 
    // at next call to `loadPost` pass same array: `dataArray`  
}); 

function loadpost(arr) {  
    $.ajax({  
     url: '/home/_loading_process/', 
     dataType: 'json', 
     type: 'GET'  
    }) 
    .done(function(data){ 
     $.each(data.posts, function(i){ 
      arr.push(data.posts[i].comment); 
     });  
     console.log(arr); 
    });  
}; 

$(document).ready(function(){ 
    loadpost()  
}); 

const dataArray = []; 

function loadpost() {  
    $.ajax({  
     url: '/home/_loading_process/', 
     dataType: 'json', 
     type: 'GET'  
    }) 
    .done(function(data){ 
     $.each(data.posts, function(i){ 
      dataArray.push(data.posts[i].comment); 
     });  
     console.log(dataArray); 
    });  
}; 
+0

我試過使用此代碼並在它的結尾我試圖使用.clone循環訪問數組,但是我得到了與控制檯但在瀏覽器中相同的行爲 – quechon

+0

「.clone」是什麼意思? 「.clone」不會出現在問題的'javascript'處。 – guest271314

+0

.clone jquery函數 – quechon