从getJSON函数返回值

我有一个jquery getJSON函数,我需要返回结果值(在其他地方使用它)

这是代码:

function getval(){ jQuery.getJSON('http://data.mtgox.com/api/1/BTCUSD/ticker?callback=?', function(data) { // We can't use .return because return is a JavaScript keyword. return data['return'].avg.value; }); } $(function () { $(document).ready(function() { alert (getval()); }); }); 

这是行不通的:(

我知道我可以从getJSON函数内部调用外部函数,其值如下:

  jQuery.getJSON('http://data.mtgox.com/api/1/BTCUSD/ticker?callback=?', function(data) { // We can't use return because return is a JavaScript keyword. mysecondfunction(data['return'].avg.value); }); function mysecondfunction(value){ //use the value } 

但我必须从另一个函数调用json函数,因为json返回一个动态值,我需要使用它。

我希望它清楚……

非常感谢你!!

这是最终的解决方案:

 function getval( callback ){ jQuery.getJSON('http://data.mtgox.com/api/1/BTCUSD/ticker', function(data) { // We can't use .return because return is a JavaScript keyword. callback(data['return'].avg.value); }); } $(function () { $(document).ready(function() { getval( function ( value ) { alert( 'Do something with ' + value + ' here!' ); } ); }); }); 

谢谢大家的帮助!!

您可以尝试使用callback函数:

 function getval( callback ){ jQuery.getJSON('http://data.mtgox.com/api/1/BTCUSD/ticker?callback=?', function(data) { // We can't use .return because return is a JavaScript keyword. callback(data['return'].avg.value); }); } $(function () { $(document).ready(function() { getval( function ( value ) { alert( 'Do something with ' + value + ' here!' ) } ); }); }); 

Ajax调用是异步的,因此你不能让getVal()函数返回一些东西。 无论您需要对结果做什么,都必须在回调函数内部进行。

 function getval() { jQuery.getJSON('http://data.mtgox.com/api/1/BTCUSD/ticker?callback=?', function(data) { // You have to use "data" here alert(data['return'].avg.value); }); } $(function () { $(document).ready(function() { getval(); }); }); 

嗨getJSON异步调用所以它返回undefind

所以你需要用这个args asnyc:false来激活 ajax调用pass

例如:

  function getCountrycodeJson(obj) { var code=""; $.ajax({ async: false, dataType : 'json', url: "url", type : 'GET', success: function(data) { for(var i in data){ //here do your logic and assign value for code varable } } }}); return code; } 

这对我有用…..