我有一个单独的 HTML 文件,我通过 $.get()
加载该文件,然后将其转换为 Bootstrap 模式对话框:
$.get("src/html/foobar.html", function (data) {
var md = $(data).modal({
backdrop:'static',
keyboard: false
});
});
但是,在将其转换为模式对话框并显示之前,我想从服务器加载一些内容。我们从jQuery's documentation得知$.get()
返回一个 jqXHR
对象。在将 data
显示为模式之前,有没有办法以某种方式更改它返回的 HTML 内容?
编辑:我应该更具体一点,询问我可以对对象执行哪些操作来编辑其内容。
最佳答案
当然,您可以只在回调函数中内联修改 data
,然后再将其传递给 .modal
然而,一种更简洁的机制是仅从作为 jqXHR
对象的 Promise
链接 .then
调用:
$.get(url).then(function(data) {
// modify the data here
...
return modified_data;
}).then(function(data) {
// show data modally
});
注意:这假设 jQuery 1.8 或更高版本,具有改进(即更正)的 .then
语义
为了避免编写大量的内联函数,请将修饰函数和模态函数分开命名函数,然后可以编写:
$.get(url).then(modify).then(display);
Promise 是允许责任分离的"new"方式(自 jQuery 1.5 起)——正如您从上面的示例中看到的,Promise 链允许您完全理清检索、修改和随后显示的三个单独的行为。远程数据。
关于javascript - Jquery:从获取请求更改 jqXHR 的 HTML 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24189732/