我无法将纯HTML加载到动态创建的DIV元素中。我的脚本如下所示:
$("button").click(function () {
var divElem = $('<div />').load('@Url.Action("MyFunkyPartialView", "Home")');
});
MyFunkyPartialView操作方法返回如下所示的部分视图:
答案 0 :(得分:6)
您新创建的DIV
元素在哪里?
当您创建HTML元素(即$('<div/>')
)时,它不会自动插入到文档中,因此您无法在屏幕上看到它。你必须指定你想把它放在哪里。
.load()
时没有错。
长话短说,那就是你没有做错 - 你只是错过了工作流程中的一步。
然后,您唯一需要做的就是将DIV
插入到您的文档中。您可以使用以下内容执行此操作:
var divElem = $('<div/>').load('@Url.Action("MyFunkyPartialView", "Home")');
// ...
divElem.appendTo('#main');
这会在DIV
元素中添加#main
元素,而不是它的原始内容。
访问DIV
的内容时,我们必须确保.load()
来电有机会先完成。通常,这最好通过complete
回调来实现。
var divElem = $('<div/>')
.load('@Url.Action("MyFunkyPartialView", "Home")', function () {
// this function executes after the load AJAX call completes,
// so this is the best place to access the contents of the div.
alert(divElem.html());
});