2013-10-23 69 views
0

假設我這樣做(而不必傳遞到服務器和從服務器),即這樣的事情?信息傳遞到jQuery的Ajax響應處理功能

$.get("/api/GetComments?post=" + post, function(data, id_of_div_to_update) { 
    var a = JSON.parse(data); 
    $("div[id=" + id_of_div_to_update + "]").text(a); 
}); 
+1

'id_of_div_to_update'是DOM元素的html屬性ID?我的意思是不是來自服務器的價值? – rab

+0

你可以像'var callback =(function(id){return function(data){//這裏你得到id和data};})(id_of_div_to_update);' – rab

回答

1

通常有在此沒有必要爲在封閉(功能)範圍你的AJAX調用現場,這意味着它知道一些額外的數據,需要可視化回調數據(用戶定義的任何數據需要):

// ... 
(function(){ 
    // ... 
    var id_of_div_to_update = '#output'; 
    // ... 
    $.get("/api/GetComments?post=" + post, function(data) { 
     var a = JSON.parse(data); 
     console.log("comments=" + a.count); 
     console.log("div_to_update=" + id_of_div_to_update); 
    }); 
})(); 
2

那麼首先你可以傳遞數據對象,它是更清晰可讀,而不是通過它的網址.. 使用getJOSN得到儘可能JSON響應,其中包括格的,你需要的ID更新

$.getJSON(url, {"post":post},function(data) { 
    console.log("comments=" + data.count); 
    console.log("div_to_update=" + data.id_of_div_to_update); 
} 

你的反應應該像

{"count":1,"id":12} 

更新

,因爲我假設你已經知道div的ID來更新你可以將它設置成一個變量,並在以後使用它

var id_of_div_to_update="something"; 
$.getJSON(url, {"post":post},function(data) { 
    console.log("comments=" + data.count); 
    console.log("div_to_update=" + id_of_div_to_update); 
} 
+0

我想避免必須傳遞字符串服務器does not需要知道進入和退出服務器 – Jacob

+0

你可能誤解了我的問題,對不起。我更新了它以更清楚地反映我的意思。另一個人先回答正確。雖然謝謝! – Jacob

+0

沒問題....反正歡迎很高興它幫助..歡呼!快樂的編碼 – bipen

0

是的,你可以添加獲得成功後執行的AJAX回調函數或獲取請求失敗。例如

$.ajax({ 
    url: url, 
    data: data, 
    success: function(response){ 
    console.log(response) 
    // process 
    }, 
}); 

如果你的jQuery版本高於1.8,你應該使用'done','fail'和'always'回調。 更多信息可在http://api.jquery.com/jQuery.get/找到。