-1

我有以下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。

任何的想法?

谢谢。

4

3 回答 3

1

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

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

代替

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

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

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

于 2012-04-19T08:41:42.683 回答
0

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

$.ajax({
    url: href,
    context: document.body,
    dataType: 'html',
    success: function (data) {},
    ...
});
于 2012-04-19T08:28:33.957 回答
0

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

var $modal=$(dialogDiv).find('.modal-body p.body');
$(data).appendTo($modal); 
于 2012-04-19T08:30:40.380 回答