3

ページ上で置換が必要な複数の HTML フラグメントを返す AJAX 呼び出しがあります。

<div data-replace="some-div">
  <p>whatever</p>
</div>

<div data-replace="some-other-div">
  <p>something else</p>
</div>

現在、すべてのhtmlをページの非表示のdivに追加してから、次のことを行っています:

    hiddenDiv.find('[data-replace]').each(function () {
        $('#' + $(this).data('replace')).html($(this).html());
        $(this).remove();
    });

これは機能しているように見えますが、少しハッキーなようです。

より良い方法はありますか (これは私の制御範囲外であるため、JSON ではなく HTML を返します)。

4

1 に答える 1

2

すべての DOM 要素を含む jQuery オブジェクトを作成し、不要なため非表示の DIV 要素としてドキュメントに追加しません。また、更新後に削除する必要はありません。

このようなもの:

(AJAX 応答がデータと呼ばれる変数であると仮定します)

var $data = $("<div>" + data + "</div>");
$data.find('[data-replace]').each(function () {
    $('#' + $(this).data('replace')).html(this.innerHTML);
});
于 2013-05-27T13:10:55.230 に答える