javascript - Jquery:从获取请求更改 jqXHR 的 HTML 内容

标签 javascript jquery html

我有一个单独的 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/

相关文章:

javascript - 允许 Enter Key 和 Click Function 同时运行

javascript - 动画滚动顶部的缓动

javascript - 尝试使用 Class 在 Select 上获取下拉选项

javascript - 连续激活div

javascript - 放大,缩小html中的功能

javascript - 为什么javascript在迭代时将数组索引转为字符串?

javascript - 循环遍历对象数组并返回与另一个对象具有相同/键值对的对象

javascript - Jquery下拉菜单点击总是打开

javascript - 使用 JavaScript 更改 anchor 文本

html - CSS 是否有任何预定义的动画?