我使用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"}]
帮帮我…我该怎么解决这个问题?
您的问题不清楚,但我想您应该更改:
$('#results').append('<div class="item">' + value + '</div>');
收件人:
$('#results').append('<div class="item">' + value.nama + '</div>');
由于value是一个json对象,而name是该对象的唯一属性。
在foreach
中,第二个参数是对象集合中的单个对象。
如果你想显示json字符串,你可以使用JSON.strigify(value)
,但如果你想访问json属性或值,你需要导航value
-json,例如:
value.name
它将在第一次迭代中打印"Sakkel Krista Afrentino",这是对象上第一个位置的内容