2016-09-14 51 views
-2

我有这个对象数组,我该如何使用jQuery.each()来循环它?如何在对象数组上使用jQuery.each()循环

 
Array 
(
    [0] => stdClass Object 
     (
      [id] => 1 
      [parent_cat_id] => 1 
      [child_cat_name] => Java 
      [status] => 1 
      [date] => 2016-09-11 01:26:00 
     ) 

    [1] => stdClass Object 
     (
      [id] => 2 
      [parent_cat_id] => 1 
      [child_cat_name] => JavaScript 
      [status] => 1 
      [date] => 2016-09-11 01:26:00 
     ) 

    [2] => stdClass Object 
     (
      [id] => 3 
      [parent_cat_id] => 1 
      [child_cat_name] => HTML 
      [status] => 1 
      [date] => 2016-09-11 01:26:00 
     ) 

    [3] => stdClass Object 
     (
      [id] => 4 
      [parent_cat_id] => 1 
      [child_cat_name] => PHP 
      [status] => 1 
      [date] => 2016-09-11 01:26:00 
     ) 

    [4] => stdClass Object 
     (
      [id] => 5 
      [parent_cat_id] => 1 
      [child_cat_name] => Python 
      [status] => 1 
      [date] => 2016-09-11 01:26:00 
     ) 

    [5] => stdClass Object 
     (
      [id] => 6 
      [parent_cat_id] => 1 
      [child_cat_name] => Ruby 
      [status] => 1 
      [date] => 2016-09-11 01:26:00 
     ) 

) 

我试图用这个 -

$.each(data, function(key, value) { 
    console.log(value); 
}); 

哪个给我下面的错误 -

TypeError: invalid 'in' operand e

+2

你向我们展示了一个PHP对象的转储,你能告诉我们JS的日志吗? –

+0

这就是我得到的,如果我'console.log(数据)' –

+0

@Simon那么你没有返回json到客户端。 –

回答

0

我建议你使用的forEach来代替。 jQuery.each方法有另一个目标。

data.forEach(function(entry) { 
    //Your logic. 
}); 
0

你的数组有奇怪的格式。看到这个例子:

 var data = [  
      {text: "hello"}, 
      {text: "good bye"}, 
      {text: "Hello again"}  
     ] 

     $.each(data, function(key, value) { 
      console.log(value.text); 
     }); 
0

你jQuery.each语法是正确的,但由于卡尔 - 安德烈·加侬所说,这是一个PHP阵列的输出。

在将数组发送到前端之前,请将您的阵列通过json_encode

http://php.net/manual/en/function.json-encode.php

+0

是的我知道我可以通过使用'json_encode',但我想保留我的数据,所以它适合正常的PHP循环。 –

+0

@Simon你不能这样做。 –

+0

@Simon,我的意思是通过'json_encode'传递给客户端。您不必永久转换它。 –