2

我无法将纯 HTML 加载到动态创建的 DIV 元素中。我的脚本如下所示:

$("button").click(function () {
  var divElem = $('<div />').load('@Url.Action("MyFunkyPartialView", "Home")');
});

MyFunkyPartialView 操作方法返回一个局部视图,如下所示:

4

1 回答 1

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());
    });
于 2012-04-27T07:44:45.660 回答