为什么这不会获得回报价值?

时间:2015-03-29 15:48:17

标签: javascript jquery html

我的HTML代码中有这个

<script type="text/javascript">
    var URL = replace(); 
    alert(URL);
</script>

如果我将其放入标题中,则会显示“http://example.com/result&#34;

function replace() { 
 url = 'http://example.com'; 
 $.get(url, function(data){ 
  var url_gen = data.responseText; 
 }); 
 return “http://example.com/result"; 
} 

但如果我像这样使用回报,它就不会做任何事情。为什么呢?

function replace() { 
 url = 'http://example.com'; 
 $.get(url, function(data){ 
  var url_gen = data.responseText; 
 }); 
 return url_gen; 
} 

为了确保,如果我在第二个代码中的 return url_gen; 前插入提醒(url_gen),则提醒显示&#39; http://example.com &#39;所以 url_gen 中有一个实际值!

注意:此处,假设 url_gen 是从网页上进行网页抓取的字符串。

2 个答案:

答案 0 :(得分:1)

因为1 url_gen仅在$.get()中定义,因此无法在外部访问; 2)$.get()是异步的。

解决方法:直接从$.get()返回:

function replace() { 
 url = 'http://example.com'; 
 $.get(url, function(data){ 
   var url_gen = data.responseText; 
    return url_gen;
 }); 
  
} 

答案 1 :(得分:1)

让url_gen全局如下:

function replace() { 
url = 'http://example.com'; 
var url_gen ='';
$.get(url, function(data){ 
url_gen = data.responseText; 
}); 
return url_gen; 
}