【问题标题】:TypeError: a is undefined in jquery at the first line?TypeError: a is undefined in jquery at the first line?
【发布时间】:2015-11-26 10:46:30
【问题描述】:

因此,在我的代码中,当我按下 #jsonclick 按钮时,它会激活我的脚本,该脚本会使用来自 JSON 页面的信息填充表格。我遇到的问题是我得到一个 TypeError: a is undefined,我不知道为什么。 这是我的代码:

jQuery 函数

   $("#clickjson").click(function () {
    $.getJSON("gmessagegroup.php?gid=" + $('#gbox').val(), function (data) {
        $.each(data.messages, function (key, val) {
            if (data.messages[key].clientmessageid != undefined) {
                console.log(data.messages[key].clientmessageid + ":" + data.messages[key].from + " - " + data.messages[key].content);
                $("#messages tbody tr:last").after('<tr><td>' + data.messages[key].clientmessageid + '</td><td>' + escapeHtml(data.messages[key].from).replace("https://bn1-client-s.gateway.messenger.live.com/v1/users/ME/contacts/8:", "") + '</td><td id=' + data.messages[key].clientmessageid + ' contenteditable="true">' + escapeHtml(data.messages[key].content) + '</td></tr>');
            }
        });
    });

    setTimeout(function () {
        var message_status = $("#status");
        $("td[contenteditable=true]").blur(function () {
            var field_userid = $(this).attr("id");
            var value = $(this).text();
            $.post('groupedit.php', field_userid + "=" + value, function (data) {});
        });

    }, 1000);
});

代码在下拉选择中获取所选项目的值。我尝试输入并发出警报,它正在输出被推送到 PHP 的正确值。我不确定 TypeError 在哪里发挥作用,我所知道的是,当我从 php 末尾删除 ?gid=" + $('#gbox').val() 时,错误消失了。问题是,我需要它才能让 php 工作。有人可以告诉我为什么会这样吗?

谢谢。

【问题讨论】:

  • 这意味着您的页面中没有找到具有gbox id的元素,请检查。
  • 然后确保 gmessagegroup.php? 返回有效的 json。在控制台中检查
  • 当你执行ajax函数获取json时,可能你的select在DOM中没有准备好。你可以检查一下:?gid="+ (($('#box').val()) ? $('#box').val() : 0),如果找不到#box,它将返回0
  • 如果我执行 gmessagegroup.php?gid='valuehere',我会得到一整页的 JSON 响应。 'valuehere' 是我手动放置的值。除了 TypeError 之外,我没有收到其他错误

标签: javascript php jquery typeerror


【解决方案1】:

实际上在您的json response 消息中找不到这就是为什么它以a is undefined 响应检查您的json 数据是否有messages 或不喜欢,

if(data && data.messages.length) // check for messages
   $.each(data.messages, function (key, val) {
        if (data.messages[key].clientmessageid != undefined) {
            ...
        }
    });
}

快照商店

【讨论】:

    猜你喜欢
    • 2021-11-12
    • 2015-09-18
    • 2013-12-22
    • 2015-01-19
    • 2014-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多