2017-01-22 35 views
0

我有一個函數:商店獲取方法結果爲可變,並顯示它

<div class="tempatbaca"></div> 
<script> 
    function bacaData() { 
      $.get("a.php", {}, function (data, status) { 
       $(".tempatbaca").html(data); 
      }); 
     } 

    $(document).ready(function(){ 
    bacaData(); 
    }); 
</script> 

a.php只會文件只包含回聲「嗨」。 該代碼工作正常。但如何將get方法結果存儲到變量? 我試試這個:

<script> 
    var data2; 
    function bacaData() { 
      var a; 
      $.get("a.php", {}, function (data, status) { 
       a = data; 
      }); 
      return a; 
     } 

    data2 = bacaData(); 

    $(document).ready(function(){ 
    //initialize the javascript 
    document.getElementById("tempatbaca").innerHTML = data2; 
    }); 
</script> 

,並導致公司沒有出現。我錯了嗎?

+0

你做了什麼試圖診斷問題?你用過調試器嗎? – Travis

回答

1

$.get是異步的。所以,你的代碼在被賦值之前返回a。而在你的代碼的上層版本中,你是在回調中分配的,因此它工作正常。看看JavaScript的promises

0

因爲$.get需要一段時間才能從服務器獲取數據,您的功能bacaData返回a之前$.get完成。

您可以使用下面的代碼來執行相同的操作。

$(document).ready(function(){ 
    $.get("a.php", {}, function (data, status) { 
      document.getElementById("tempatbaca").innerHTML = data; 
    }); 
});