1

我试图让 jquery getJSON 函数工作。以下看起来很简单,但它不起作用。

$("#edit-item-btn").live('click', function() {
    var name = this.id;
    $.getJSON("InfoRetrieve",
       { theName : name },
       function(data) {
       alert(name);
    });
});
4

5 回答 5

3
  1. getJSON通过将调用替换为简单的调用,确保周围的代码与您的 DOM 一起工作alert
  2. 确保“InfoRetrieve”路径确实存在。如果用InfoRetrieve替换 URL 栏中的文件名,它会返回JSON吗?
  3. function(data)}在关闭点击处理程序之前需要用 a关闭。
  4. { theName : theName }对我来说更有意义data。你确定你输入对了吗?
于 2010-01-06T04:16:56.400 回答
2

name在两个地方使用变量,但从未定义此变量。

于 2010-01-06T04:15:44.657 回答
2

你不应该做警报(数据)吗?

于 2010-01-06T04:17:23.157 回答
1

您是否尝试过使用 Firebug 或 Chrome 开发者工具来查看正在发出的请求?

InfoRetrieve您站点的当前路径中是否存在名为的文件?它返回什么?

于 2010-01-06T04:10:11.030 回答
0

我不相信你的代码是正确的。试试这个,看看会发生什么:

$("#edit-item-btn").live('click', function() {
    var name = this.id;
    $.getJSON("InfoRetrieve",
       { theName : name },
       function(data) {
           alert(data.name);
    });
});

如果 InfoRetrieve 使用如下 JSON 字符串响应,这应该可以工作:

{"name":"Sally Smith"}

需要注意的几点:

  1. 您正在向页面所在目录中的 ./InfoRetrieve 发送请求。如果您使用的是servlet,那真的正确吗?或者你想要“/servlet/InfoRequest”?
  2. 您正在将数据作为输入发送到 InfoRetrieve,键为“theName”,值为“this.id”。你的 servlet 知道如何接受这个输入吗?
  3. 然后,您将收到来自 InfoRetrieve 的响应,并且“数据”设置为表示响应中 json 的对象。然后,您需要访问数据的属性以获取响应中的值。
于 2010-02-12T23:05:27.780 回答