我正在编写一个jQuery脚本,该脚本从MySQL数据库检索PHP数组并将其作为JSON对象返回。这一切都正常工作,我可以输出原始JSON对象,包括键。
我遇到的问题是我输出它的方式,我目前使用jQuery的$.each.
示例:(不是完整的脚本,只是需要的)
if(data){
$.each(data, function(key, data) {
$('#div').append( key + ' : ' + data );
});
}
} , 'json')
现在的输出是这样的:
Name: Tom Age: 20 Gender: Male
但是我不希望返回数组的所有结果,也就是$。每个人都在做。我想手动输出数组的不同部分,在我想要的地方和时间。
我尝试了这样的东西,这样我就可以得到数组结果,有"name"的键,但它没有工作(我的数组键之一是名称):
$('#div').append( key + ' : ' + data['name'] );
有什么建议吗?
编辑:让它更清楚一点:
比起循环并输出整个数组,我只想输出选定的部分:例如;
data.namedata.age
例如,这些将只输出包含姓名和年龄键的2个数组,即使该数组有10个其他结果。
我们正在处理的数组是这样的,只有一个结果,但是有多个值: {Name: 'Tom' Age: 20 Gender: 'Male'}
怎么样:
$.each(data, function(key, data) {
$('#div #span-'+key).html(data);
});
因此,如果您有键name, age, gender,则需要3个span, ID为:#span-name, #span-age, #span-gender,它们将被填充数据。如果你只需要姓名和年龄,只需删除#span-gender span,它就不会显示了。
你的html应该是这样的:
<div id="div">
<span id="span-name"></span>
<span id="span-age"></span>
</div>
我认为你想这样做:
$.each(data, function(key, val) {
$('#div').html(key + ' : ' + val.name);
});
建议:使用.html()
,它将允许您使用最新结果更新div; .append()
将在结果后面附加先前的结果。
each
中使用不同的变量名。您使用data
作为主要对象以及回调的第二个参数。还要注意键的使用是区分大小写的
把第二个改成别的
$.each(data, function(key, item) {
$('#div').append( item.Name )
也不清楚你的数据看起来像什么。我假设它是一个对象数组,如:
[ {Name: 'Tom' Age: 20 Gender: 'Male'}, {Name: 'Jane' Age: 20 Gender: 'Female'}]
如果数据只是单个对象,而不是数组,则不需要使用$.each
,只需使用对象符号
{Name: 'Tom' Age: 20 Gender: 'Male'}
alert( data.Name);
在您的jQuery代码中这样做。
if(data){
var dec_data = jQuery.parseJSON(data[0]);
//Loop over it now
jQuery.each(dec_data, function(key, val){
//Stick it in the div
jQuery('div').append(key+' - '+val);
});
}