2014-06-12 18 views
0

我有我通過$.get()載入中,然後變成了一個引導模式對話框一個單獨的HTML文件:jQuery的:從Get請求jqXHR的變化HTML內容

$.get("src/html/foobar.html", function (data) { 
    var md = $(data).modal({ 
     backdrop:'static', 
     keyboard: false 
    }); 
}); 

不過,我把它變成一個前模式對話框並顯示它,我想從服務器加載一些內容。我們從jQuery's documentation知道$.get()返回jqXHR對象。有沒有辦法以某種方式更改data中返回的HTML內容,然後將其顯示爲模式?

編輯:我應該更具體一點,並問我可以在對象上執行哪些操作來編輯其內容。

回答

2

你當然可以,只需要修改你的回調函數中data直列它傳遞給.modal

但是一個更簡潔的機制是剛剛連鎖從Promise一個.then呼叫是jqXHR對象之前:

$.get(url).then(function(data) { 
    // modify the data here 
    ... 
    return modified_data; 
}).then(function(data) { 
    // show data modally 
}); 

NB:這是假定jQuery的1.8或更高版本,具有改進的(即校正)語義.then

避免編寫大量的內聯函數,使修正功能和模態函數單獨命名的功能,那麼你可以這樣寫:

$.get(url).then(modify).then(display); 

承諾是「新」的方式(因爲jQuery的1.5),以允許分離責任 - 從上面的示例中可以看出,Promise鏈允許您徹底解決檢索,修改和隨後顯示遠程數據的三種單獨行爲。

+0

謝謝!也許我應該更具體一些。我試圖找出'//修改這裏的數據'部分。或多或少,我將如何在這個變量上執行諸如ID選擇'$('#foo')'的操作。 –

+0

@LoganLehman只需將它們加載到jQuery變量中,而不將它們添加到DOM中,例如'var $ els = $(data)' – Alnitak

+0

非常感謝!得到它了 –