jQuery的每个功能不起作用

时间:2018-09-09 06:37:14

标签: javascript jquery

我有以下通过PHP传递的json数组。 PHP数组是-

<?php 
    $arrTestData = [
    1 => [
        'id' => '1',
        'name' => 'Written'
     ],
     2 => [
        'id' => '2',
        'name' => 'Verbal'
     ]
    ];
   $arrVariable = json_encode( $arrTestData );?>

我正在尝试像这样在javascript中迭代php数组-

<script>

    $(document).ready(function () {

        var response = '<?php echo $arrVariable; ?>';
        data = $.parseJSON(response);

         $.each(data,function(key,value) {
            console.log(data.key + " --- " +data.value);
        });
</script>

如果我打印数据控制台,它会显示给我,但无法在循环中使用。 但是在控制台中,它提供了未定义的功能。我想要数组中的值。

3 个答案:

答案 0 :(得分:0)

响应对象是一个数组,被放入名为data的变量中。在$.each函数中,您尝试访问数组中的.key.value项目。但是数组没有这些值。

应该要做的是使用独立变量名 .each回调的参数-即key和{ {1}}。它们不是value properties ,而是独立变量:

data

请注意,由于这些值是 objects ,因此将导致

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

如果还要迭代内部对象的键和值,请使用1 --- [object Object] 2 --- [object Object]

Object.entries

输出:

$.each(data,function(key,value) {
   Object.entries(value).forEach(([key, val]) => {
     console.log(key + ' --- ' + val);
   });
});

还请注意,不需要像jQuery这样的大库就可以加载JSON。您可以单独使用香草JS轻松实现所有这些功能:

id --- 1
name --- Written
id --- 2
name --- Verbal

答案 1 :(得分:0)

我像这样尝试过,并且有效!!

...0, 2, 4, 6, 8, 6, 4, 2, 0, 2, 4, 6, 8, 6, 4...

答案 2 :(得分:0)

另一种解决方案-

$.each(data,function(key,value) {
            console.log(key + " --- " + value.id + " --- " + value.name);
        });