2013-04-11 83 views
0

我希望是我的客户的json API(它正确发送数据)的成功后,但我很难获取该数据并将其用作变量更新我的网站...

$.post(takeurl, function(data) {    
     var newPrice = json.data.newPrice; 
     alert('hi'); 
    }, "json"); 

    $(this).parents("tr").find(".large-detail").html(newPrice); 

    return false; 
}); 

Fiddle

基本上,在这个例子中,我想更新large-detail从我的API调用,这将返回这样的newPrice数据:

{"data":{"newPrice":80,"lockedInPrice":47},"errors":[],"success":true,"code":200} 

想法?我无法通过newPrice。我希望我犯了一个愚蠢的语法错误,即使它会让我觉得自己像个白痴。

回答

0

您需要在回调函数来更新它:

var $self = $(this); 

    $.getJSON(takeurl, function(data) {    
     var newPrice = data.data.newPrice; 
     $self.parents("tr").find(".large-detail").html(newPrice); 
    }); 

    return false; 
}); 

如果你拥有了它,现在它的AJAX函数返回前,执行和你newPrice变量的范围之外。

+0

嗯,我试过了,它不工作...不返回任何东西。你能否告诉我的.post电话是否正确写入? (我应该提到这是表格数据,并且我将表格从小提琴中除去以修剪它) – dilettante 2013-04-11 17:22:43

+0

@dilettante您需要使用POST还是可以使用GET?如果您可以使用GET,那么您可以像编辑回答中那样使用'getJSON'。 – Paulpro 2013-04-11 17:25:07

+0

谢谢!我刚刚尝试过,仍然没有任何收获。奇怪的是,我刚刚加入\t \t \t console.log(newPrice);在声明变量并且它没有出现之后。所以我把它改为\t \t \t console.log('hi);没事了。即使我的控制台窗口显示正在返回的数据,它可能不会调用吗? – dilettante 2013-04-11 17:31:23

0

该问题是由于返回的JSON中的错误引起的,其中前缀为<pre></pre>的代码供其他工程师测试,但是当我尝试使用它时返回了一个parseerror。谢谢@paulpro。