iT邦幫忙

0

我如何能抓到 load 回來的值?

function cart(){ $('#cart').load('/models/cart'); setTimeout(cart, 10000); };

假設我在用這個 function
每十秒都會 load 一次
我想抓到 /models/cart 回傳什麼字串?
我知道 ajax 的 success function 有 data 可以用
但這邊我能怎麼抓?

2 個回答

0
wingkawa
iT邦新手 4 級 ‧ 2018-06-26 20:06:00
最佳解答

http://api.jquery.com/load/
這個時候就是要先看文件
這邊照文件寫一份給你看:

/**
.load( url [, data ] [, complete ] )
data: 有需要的話,你可以傳資料給 /models/cart。
      data 可以是物件或是一個字串
complete: 是一個 function,對,它就是你要的 callback,它有三個參數 responseText, textStatus, jqXHR

data 和 complete 都是可選用的。

實際上 callback 會長這樣:
Type: Function( String responseText, String textStatus, jqXHR jqXHR )
*/
function cart() {
    $('#cart').load('/models/cart', function(responseText, status, xhr) {
        // TODO
        // responseText 就是你想要的回傳的字串
        console.log(responseText);
    };
    setTimeout(cart, 10000);
}

然後,為了以後的自己及其他任何可能看到這份程式碼的同仁著想
為了可讀性換行+縮排吧
寫成一行沒意思啊,要省流量最後再minify就行了

0

類似這樣

function cart(){ 
$('#cart').load('/models/cart', function() {
   console.log($(this).text());  
});
setTimeout(cart, 10000); 
};
小松 Nana iT邦研究生 3 級 ‧ 2018-06-26 18:00:08 檢舉

所以 load() 沒有一個指定的 callback?

小松 Nana iT邦研究生 3 級 ‧ 2018-06-26 18:06:58 檢舉

我發現沒有回傳噎

我要發表回答

立即登入回答