2015-11-20 81 views
1

我的代碼用ajax:jQuery的阿賈克斯[對象的對象] [對象的對象]輸出列表

$("#keyword").keyup(function() { 
    var keyword = $("#keyword").val(); 
    if (keyword.length >= MIN_LENGTH) { 
     $.get("./lib/data_siswa_ajax.php", { keyword: keyword, sekolah: $("#sekolah").val()}) 
     .done(function(data) { 
      $('#results').html(''); 
      var results = JSON.parse(data); 
      $(results).each(function(nama, value) { 
       $('#results').append('<div class="item">' + value + '</div>'); 
      }) 

      $('.item').click(function() { 
       var text = $(this).html(); 
       $('#keyword').val(text); 
      }) 

     }); 
    } else { 
     $('#results').html(''); 
    } 
}); 

產出DIV結果:

[object Object] 

[object Object] 

console.log: 

[{"nama":"Sakkel Krista Afrentino"},{"nama":"Abdul Rahman Alfikkry"}] 

幫助我..我該如何解決這個問題?

+0

在這種情況下,'key'是數組中當前項目的索引,'value'是項目本身。所以你只需要從對象中使用屬性'nama'而不是對象本身 - >'.append('

' + value.nama + '
')' – Andreas

+0

這是因爲你正在獲取單個對象,意味着它是嵌套對象。您必須迭代使用每個循環來獲取實際值。使用'value.nama'替換值。 –

+0

感謝它的工作:) –

回答

1

你的問題不太清楚,但我想你應該改變:

$('#results').append('<div class="item">' + value + '</div>'); 

要:

$('#results').append('<div class="item">' + value.nama + '</div>'); 

由於值是一個JSON對象,並將其命名爲對象的唯一屬性。

+1

這不是一個_json object_,而是一個普通的對象。 [JSON](http://json.org)是一種數據交換格式。 – Andreas

1

foreach中,第二個參數是對象集合的單個對象。

如果你想展示你可以使用JSON.strigify(value) JSON字符串,但如果你想獲得一個JSON屬性或值,您需要導航value JSON例如:

value.name 

它將打印'Sakkel Krista Afrentino'在第一次迭代中,這是對象上第一個位置的內容

+1

謝謝巴勃羅..工作.. :) –

相關問題