我的代码使用ajax:
$("#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 :(得分:1)
你的问题不明确,但我想你应该改变:
$('#results').append('<div class="item">' + value + '</div>');
要:
$('#results').append('<div class="item">' + value.nama + '</div>');
因为value是一个json对象,name是该对象的唯一属性。
答案 1 :(得分:1)
在foreach
中,第二个参数是对象集合的单个对象。
如果要显示json字符串,可以使用JSON.strigify(value)
,但如果要访问json属性或值,则需要导航value
json,例如:
value.name
它将在第一次迭代中打印'Sakkel Krista Afrentino',这是对象上第一个位置的内容