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