動的に作成された DIV 要素にプレーンな HTML を読み込むことができません。私のスクリプトは次のようになります。
$("button").click(function () {
var divElem = $('<div />').load('@Url.Action("MyFunkyPartialView", "Home")');
});
MyFunkyPartialView アクション メソッドは、次のような部分ビューを返します。
動的に作成された DIV 要素にプレーンな HTML を読み込むことができません。私のスクリプトは次のようになります。
$("button").click(function () {
var divElem = $('<div />').load('@Url.Action("MyFunkyPartialView", "Home")');
});
MyFunkyPartialView アクション メソッドは、次のような部分ビューを返します。
新しく作成した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());
});