使用jquery而不是finidng索引通过JSON对象循环?

时间:2016-01-31 02:57:40

标签: javascript php jquery json ajax

我的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调用正确的dataType为&#34; json&#34;如下所示:

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

我无法通过json响应循环输出2个不同的&#34;成就&#34;。我是否错误地引用了这些项目?

编辑:

不确定是否有帮助,但这是&#34;响应&#34;如控制台的Response选项卡所示:

{"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"}

2 个答案:

答案 0 :(得分:1)

这样的事情应该有效

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

答案 1 :(得分:1)

我认为这就是你想要的:

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

JSFiddle

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