【发布时间】:2014-07-07 03:05:10
【问题描述】:
我正在尝试循环从PHP 返回的数组。但是 jQuery .length 给了我:
'undefined'
PHP:
$items = array();
$items["country"] = "North Korea",
$items["fruits"] = array(
"apple"=>1.0,
"banana"=>1.2,
"cranberry"=>2.0,
);
echo json_encode( $fruits );
jQuery:
$.ajax({
url: "items.php",
async: false,
type: "POST",
dataType: "JSON",
data: { "command" : "getItems" }
}).success(function( response ) {
alert( response.fruits.apple );
alert( response.length );
});
- 这里 First Alert() 没问题,返回:
"1.0"。 - 然后检测长度
response.length的第二个Alert() 返回:undefined
那么我该如何循环这个数组(或)如何从 jQuery 端循环 Fruits(由 PHP 定义,如 $items["fruits"])?
【问题讨论】:
-
因为
response是一个对象,而不是一个数组,所以它没有length属性 -
在现代浏览器中你可以使用
Object.keys().length所以Object.keys(response).length -
试试
alert( response.fruits.length );
标签: javascript php jquery ajax arrays