2

動的に作成された DIV 要素にプレーンな HTML を読み込むことができません。私のスクリプトは次のようになります。

$("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 に答える