【问题标题】:ajax and json error cannot find object elment/idajax 和 json 错误找不到对象 elment/id
【发布时间】:2012-05-22 03:42:45
【问题描述】:

所以我创造了这种倒计时发生的情况,当倒计时到零时,一个 ajax 帖子被触发,php 然后返回一个json_encoded array,我想循环抛出这个数组和.remove需要删除的东西和.appendTo 需要添加的东西。但是,我似乎很难从服务器返回的json object 访问element....我在console log 中得到undefined

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.....          
            }
        });

【问题讨论】:

    标签: jquery ajax json object


    【解决方案1】:

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

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

    console.log(y[m]);
    

    我使用[m] 而不是.m,因为m 以数字开头。

    顺便说一句

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

    【讨论】:

      【解决方案2】:

      您应该改用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
      

      【讨论】:

        猜你喜欢
        • 2014-04-23
        • 2015-06-02
        • 1970-01-01
        • 2017-09-28
        • 2018-06-06
        • 2020-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多