从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; }
这对我有用…..