2014-10-10 75 views
0

的內容試圖破解這個小問題,我有..追加到HTML中的Javascript對象

我使用parse.com來存儲和檢索數據,我有一個JSON對象,我想找回的一部分的追加到HTML

var tempObject = Parse.Object.extend("Dev"); 
var query = new Parse.Query(tempObject); 
query.notEqualTo("objectId", "Dan Stemkoski"); 
query.find({ 
success: function(results) { 
alert("Successfully retrieved " + results.length + " receipts"); 
for (var i = 0; i < results.length; i++) { 
var object = results[i]; 
$("#receipts").html(object.get('receipt_title')); 
console.log(object) 
//alert(object.id + ' - ' + object.get('receipt_title'));` 

我想在

<div id = receipts> 
<div> 

顯示遺憾的是由於某種原因,我得到只有一條線而不是我應該得到的10的結果。 我知道我應該循環以獲得結果,但迄今爲止我所有的嘗試都失敗了。

在此先感謝您的幫助!

回答

4

您需要將結果添加到html,因爲現在您只需將之前的結果替換爲下一個結果。取而代之的

$("#receipts").html(object.get('receipt_title')); 

嘗試

var html = $("#receipts").html(); 
$("#receipts").html(html + object.get('receipt_title')); 

而且,只提,如果你想成爲有效的可能會更好,只是不斷加入到一個變量,寫入DOM只有一次。所以:

var html = ""; 
for(/* Do your for loop here, thats all correct*/){ 
    /*Do everything the same apart from the $("#receipts").html() line*/ 
    html += object.get('receipt_title'); 
} 
$("#receipts").html(html); 

你修改DOM的次數越少越好。

2

從外觀上看,你實際上只能看到最後一行。 嘗試像這樣固定的:

var tempObject = Parse.Object.extend("Dev"); 
var query = new Parse.Query(tempObject); 
query.notEqualTo("objectId", "Dan Stemkoski"); 
query.find({ 
    success: function(results) { 
     alert("Successfully retrieved " + results.length + " receipts"); 

     // Clear existing html from #receipts 
     $("#receipts").html(""); 

     for (var i = 0; i < results.length; i++) { 
      var object = results[i]; 

      // Adds to html of previous results (empty on first result) 
      $("#receipts").html($("#receipts").html() + object.get('receipt_title')); 

      console.log(object) 
      //alert(object.id + ' - ' + object.get('receipt_title')); 
     } 
    } 
}); 
2

不錯..其實我設法解決它有點不同:

$("#receipts").append(object.get('reciept_title')); 
    $("#receipts").append("<br>"); 

我試圖找出如何中心的結果,試圖添加HTML追加函數後,但由於某種原因打破了代碼

1

每次循環時都覆蓋#receipts的內容。試試這個(在第一次提醒後):

var datas = new Array(); 
$.each(results, function(index, data) { 
    datas.push('<span>'+ data.receipt_title +'</span>'); 
}); 

$("#receipts").data(options.join('')); 

玩一會兒,直到它做你想做的事。