使用 jquery 而不是 finidng 索引遍历 JSON 对象


Looping through JSON object with jquery not finidng indexes?

我的PHP脚本根据Chrome控制台返回以下输出json_encoded数组:

{html: {achievements: [,…]}, total: 2, status: "success"}
    html: {achievements: [,…]}
        achievements: [,…]
            0: "<div class="achievement-wrapper" title="1,000 Alarms Reduced"><div class="achievement text-center" style="background-color: #e2d7eb;"><span class="achievement-text" style="color: #ffffff;"><i class="fa fa-bell-slash"></i></span></div></div>"
            1: "<div class="achievement-wrapper" title="2,000 Alarms Reduced"><div class="achievement text-center" style="background-color: #c5b0d7;"><span class="achievement-text" style="color: #ffffff;"><i class="fa fa-bell-slash"></i></span></div></div>"
    status: "success"
    total: 2

我的jquery AJAX调用具有正确的数据类型"json",如下所示:

$( json.html.achievements ).each( function() {
        console.log("Achievement: "+$(this).val() );
});

我无法循环通过该 json 响应来输出 2 个不同的"成就"。我是否错误地引用了项目?

编辑:

不确定是否有帮助,但这是控制台的"响应"选项卡中所示的"响应":

{"html":{"achievements":["<div class='"achievement-wrapper'" title='"1,000 Alarms Reduced'"><div class='"achievement text-center'" style='"background-color: #e2d7eb;'"><span class='"achievement-text'" style='"color: #ffffff;'"><i class='"fa fa-bell-slash'"><'/i><'/span><'/div><'/div>","<div class='"achievement-wrapper'" title='"2,000 Alarms Reduced'"><div class='"achievement text-center'" style='"background-color: #c5b0d7;'"><span class='"achievement-text'" style='"color: #ffffff;'"><i class='"fa fa-bell-slash'"><'/i><'/span><'/div><'/div>"]},"total":2,"status":"success"}

我认为这就是你想要的:

$.each( json.html.achievements , function(i, val) {
  $('#myDiv').append(val[i]);
});

JSFiddle

在这里你可以看到区别,因为我添加了一些文本:https://jsfiddle.net/2pf8v0nc/20/

这样的东西应该有效

$.each( json.html.achievements , function(i, html) {
        console.log(html);
        $('#someDiv').append(html);
});