0

我正在开发一个 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

但是我不希望返回数组的所有结果,这就是 $.each 正在做的事情。我想在需要的时间和地点手动输出数组的不同部分。

我尝试了这样的方法,以便我可以得到具有“名称”键但它不起作用的数组结果(我的数组键之一是名称):

    $('#div').append(  key + ' : '  + data['name']  );

有什么建议么?

编辑:让它更清楚一点:

而不是循环并输出整个数组,我只想输出选择的部分:例如;

数据名称数据年龄

例如,即使该数组有 10 个其他结果,它们也只会输出带有 name 和 age 键的 2 个数组。

我们正在使用的数组就是这样,只有 1 个结果,但有多个值。:

    {Name: 'Tom' Age: 20 Gender: 'Male'}
4

4 回答 4

1

关于什么:

$.each(data, function(key, data) {
    $('#div #span-'+key).html(data);
});

因此,如果您有键名、年龄、性别,则需要 3 个带 ID 的跨度:#span-name、#span-age、#span-gender,它们将被填充数据。如果您只需要姓名和年龄,只需删除您的#span-gender 跨度,它就不会显示。

您的 html 将类似于:

<div id="div">
    <span id="span-name"></span>
    <span id="span-age"></span>
</div>
于 2013-01-15T05:21:02.843 回答
0

我想你想这样做:

$.each(data, function(key, val) {
   $('#div').html(key + ' : '  + val.name);
});

建议: 使用.html()它可以让您使用最新结果更新 div,并将结果.append()附加到以前的结果中。

于 2013-01-15T05:01:49.800 回答
0

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);
于 2013-01-15T05:03:33.790 回答
-1

在您的 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);
    });
}
于 2013-01-15T04:56:19.687 回答