-1

私は次のjqueryを持っています:

$.ajax({
        url: href,
        context: document.body,
        success: function (data) {
            alert(data);
            // Prepare & show dialog
            $(dialogDiv).find('.modal-body p.body').html(data);
            ...

「データ」にいくつかのhtmlがあります。アラートボックスに表示しているので確かです。上記のスクリプトの最後の行でこの html を挿入しようとしました。DOM を調べると、HTML が表示されません。

何か案が?

ありがとう。

4

3 に答える 3

1

ajax呼び出しの前に定義した場合dialogDiv(つまり、応答メソッド内でグローバルになります)、なぜ使用しないのですか

dialogDiv.find('.modal-body p.body').html(data);

それ以外の

$(dialogDiv).find('.modal-body p.body').html(data);

また、ポップアップを表示する前に.modal-body p.body、実際に存在することを確認してください。ダイアログボックスを表示(または初期化)すると、ダイアログボックスがマークアップを作成すると思います。そしてここで、まだ存在しない要素に html を挿入しようとしています。もっと調べてみてください。

簡単に確認するには、最初にダイアログを表示してから、html を挿入して、挿入されているかどうかを確認してください。

于 2012-04-19T08:41:42.683 に答える
0

dataTypeパラメータをajax()呼び出しに追加します。私の経験では、jQuery のインテリジェントなデータ型推測は 100% 完璧ではありません。

$.ajax({
    url: href,
    context: document.body,
    dataType: 'html',
    success: function (data) {},
    ...
});
于 2012-04-19T08:28:33.957 に答える
0

データが html であることが確実な場合は、appendTo を試してください。

var $modal=$(dialogDiv).find('.modal-body p.body');
$(data).appendTo($modal); 
于 2012-04-19T08:30:40.380 に答える