ajax和json错误找不到对象元素/ id

时间:2012-05-22 03:42:46

标签: jquery ajax json object

所以即时创建倒计时发生的情况,当它倒计时到零时,ajax帖子被触发,php thens返回json_encoded array并且我想循环抛出这个数组和.remove需要删除的内容和.appendTo需要添加的内容。但是,我似乎很难从服务器返回的element访问json object ....我正在undefined

获取console log

jquery的:

    $.ajax({
            url: "morphelo/splash.php",
                type: "POST",
                data: "x=<?=md5('countdown')?>&CountdownType="+type+"&id="+ID+"&what=<?md5('drop')?>",
                datatype: "html",
                success: function(data){ 
data = // {"19e0fa430b5a0437b87cf5bf7a365011":{"clutch-1337653726-445648193-0a6e039a028dd9a64239473ff08c82c6":"sub-clu-li**clutch-1337653726-445648193-0a6e039a028dd9a64239473ff08c82c6"}}

    var x = type.split('/');// 19e0fa430b5a0437b87cf5bf7a365011/unclock
        var m = x[0]; // 19e0fa430b5a0437b87cf5bf7a365011
    var y = $.parseJSON(data);
    console.log(y);
    console.log(m);
    console.log(data.m) // but it says undefinded.....          
            }
        });

2 个答案:

答案 0 :(得分:0)

您应该使用data[m]代替。

data.m表示对象中有属性名称m,而不是m的内容。

var obj = {a:1,b:2};
var m = 'a';
console.log(obj.m); // undefined
console.log(obj[m]); // 1

答案 1 :(得分:0)

您的data.m不起作用,因为data是一个字符串。

您可能打算在m的解码版本中访问data,您称之为y

console.log(y[m]);

我使用[m]代替.m,因为m以数字开头。

<强>顺便说一下

如果您始终要将HTML解码为JSON,您还可以将datatype选项的$.ajax设置为'json'