我的 html 没有在我的 jquery 对话框中按预期注入



我有以下jquery:

$.ajax({
        url: href,
        context: document.body,
        success: function (data) {
            alert(data);
            // Prepare & show dialog
            $(dialogDiv).find('.modal-body p.body').html(data);
            ...

我在"数据"中有一些 html。我确定,因为我将其显示在警报框中。我尝试用上面脚本的最后一行注入这个 html。当我检查 DOM 时,我在其中看不到我的 html。

知道吗?

谢谢。

如果你在 ajax 调用之前定义了dialogDiv(意味着它将在响应方法中是全局的),那么为什么你不只是使用

dialogDiv.find('.modal-body p.body').html(data);

而不是

$(dialogDiv).find('.modal-body p.body').html(data);

在显示弹出窗口之前,还要确保.modal-body p.body确实存在。我猜,您的对话框会在您显示(或初始化)它时创建其标记。在这里,您尝试将html注入不存在的元素。尝试调查更多,希望对您有所帮助。

为了快速检查,请尝试先显示您的对话框,然后插入 html,看看它是否已插入。

dataType参数添加到ajax()调用中。根据我的经验,jQuery的智能数据类型猜测并不是100%完美的。

$.ajax({
    url: href,
    context: document.body,
    dataType: 'html',
    success: function (data) {},
    ...
});

如果您确定数据是 html,请尝试 appendTo。

var $modal=$(dialogDiv).find('.modal-body p.body');
$(data).appendTo($modal); 

最新更新