Jquery访问和循环关联对象

时间:2012-10-03 16:01:17

标签: jquery arrays json object

我在访问JSON编码的PHP关联数组时遇到了一些问题。我使用$.get();获取JSON编码数组,并将其分配给data变量。

$.get("includes/ajax/public.php", { do: "get-data", id: value },function(data) {
// NO DATA
if (!data || data == 'false') $('#noData').slideDown('slow');
// THERE IS DATA
else {
if ($('#noData').is(':visible')) $('#noData').hide();
$('#records').html(data.totalRecords);
console.log(data["totalRecords"]);
console.log(data);
}
});

这是我在控制台中获得的。

{"totalRecords":1,"data":[{"id":"1","country_id":"224", "name":"data name","address":"data address"}]}

我必须访问totalRecords并循环数据数组。但是我无法访问它。

console.log(data.totalRecords); //outputs undefined.

console.log(data['totalRecords']); //outputs undefined.

如果可以计算data中有多少数组,我可以摆脱totalRecords部分。 data.length不起作用。它应该只给我1,但它给了我超过100,这是不正确的。

我只需访问totalRecords值(或只计算其中有多少数组),然后循环数据以操作DOM。

如果你能帮我解决这个小问题,我会很高兴。

1 个答案:

答案 0 :(得分:1)

您正在访问totalRecords值,如下所示:

data.totalRecords

它返回1是有意义的,因为在json中该字段的值确实是1:

"totalRecords":1

您必须使用数据字段才能访问元素数组:

data.data

编辑:您必须使用$ .getJSON()方法,以便jQuery将其解释为JSON而不仅仅是原始数据。

http://api.jquery.com/jQuery.getJSON/