我无法将纯HTML加载到动态创建的DIV元素中.我的脚本如下所示:
$("button").click(function () {
var divElem = $('<div />').load('@Url.Action("MyFunkyPartialView", "Home")');
});
Run Code Online (Sandbox Code Playgroud)
MyFunkyPartialView操作方法返回如下的部分视图:
你新创建的DIV元素在哪里?
当您创建HTML元素(即$('<div/>'))时,它不会自动插入到文档中,因此您无法在屏幕上看到它.您必须指定要放置它的位置.
但是,它已经在内存中了,所以你已经可以操作它并为它做些事情,包括在你做的时候向它添加内容.你打电话没问题.load().
简而言之,那就是你没有做错 - 你只是错过了工作流程中的一步.
那么,您唯一需要做的就是将DIV文件插入到文档中.您可以使用以下内容执行此操作:
var divElem = $('<div/>').load('@Url.Action("MyFunkyPartialView", "Home")');
// ...
divElem.appendTo('#main');
Run Code Online (Sandbox Code Playgroud)
这会在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());
});
Run Code Online (Sandbox Code Playgroud)