0

生成された html ページを取得するために AJAX リクエストを実行しています。結果で特定の div を見つけて、それをリクエスト元のページに挿入したいと考えています。また、この div 内にある可能性のある埋め込みスクリプトまたはスクリプト リンクを含めたいと考えています。これは、AJAX で取得したいページの簡単なサンプルです。

<html>
<head>
    <script>alert("don't want this")</script>
</head>
<body>
<div id='findMe'>
    <p>Some content</p>
    <script>alert("want only this")</script>
</div>
<script>alert("don't want this")</script>
</body>
</html>

したがって、ID findMe の div のみを抽出したいと考えています。リクエストを実行しているページにあるものは次のとおりです

<script>
$(document).ready(function(){

    $.ajax({
          url: "ajax.htm",
          success: function(data){  

            $(data).filter("#findMe").appendTo("#output");

          },
          dataType: "html"
    });

});
</script>

<div id='output'></div>

しかし、script タグがなく、アラートが表示されません。divから取り出されたようです。私が行った場合

console.log($(data))

各スクリプト タグをドキュメント フラグメントとして見ることができますが、ポップ アウトされる前にどのタグが div にあったかを知るにはどうすればよいですか?

4

3 に答える 3

0

現在のjQueryコレクションをフィルタリングする.filter()の代わりに、.find()を使用する必要があると思います。

$(data).find("#findMe").appendTo("#output");

しかし、スクリプトタグが実行されるかどうかはわかりません。

于 2012-08-07T17:06:49.687 に答える
0

あなたが試すことができます:

$(data).find('#findMe').appendTo('#output');

また

$('<div/>').append(data).filter("#findMe").appendTo("#output");

dataデモdiv(DOM には存在しない) に追加し、それに対してフィルターを作成します。

于 2012-08-07T17:05:01.490 に答える