下面的代码是一个JSON调用,它抓取一个字典并将键和值打印到一个html表
$(function() {
$('a#search').bind('click', function() {
$.getJSON('/_search', {
a: $('input[name="a"]').val()
}, function(data) {
var tableData = '<table>'
$.each(data.result, function(key, value){
tableData += '<tr>' + key + ' ' + '</tr>';
$.each(value, function(val){
tableData += '<td>' + val + '</td>';
});
});
tableData += '</table>';
$('#table').html(tableData);
});
return false;
});
});
然而,这打印如下
Developer Publisher ReleaseDate Title
0 1 2
0 1 2
0 1 2
0 1 2
它应该像这样打印
Developer Publisher ReleaseDate Title
0 0 0 0
1 1 1 1
2 2 2 2
而且我不知道为什么它会丢失里面的内容而只打印0 1 2所以最后应该打印出这样的
Developer Publisher ReleaseDate Title
Office Kouan Shouei ... ...
Jorudan Vap ... ...
Beam Software ... ... ...
任何可能出错的想法?
答案 0 :(得分:1)
请将代码更改为:
$(function () {
$('a#search').bind('click', function () {
$.getJSON('/_search', {
a: $('input[name="a"]').val()
}, function (data) {
var tableData = '<table>'
$.each(data.result, function (key, value) {
tableData += '<tr>' + key + ' ' + '</tr>';
$.each(value, function (val) {
tableData += '<td>' + value[val] + '</td>';
});
});
tableData += '</table>';
$('#table').html(tableData);
});
return false;
});
});
在代码中调用val
只是打印索引而不是javascript对象中的实际值,因此使用value[val]
。
希望这会有所帮助。干杯...... :)