0

Ajaxを使用して現在のページにHTMLドキュメントを追加し、閉じるボタンが押されたときに追加されたdivを削除しています。問題は、閉じると、divはドキュメントから削除されますが、CSS<link rel="stylesheet" href="style.css">は削除されず、Ajaxコンテンツをロードおよびアンロードするときに数が増え続けることです。そのページのヘッダーコンテンツ(css、js)を含むロードされたドキュメントを完全に削除するにはどうすればよいですか?

編集:なぜ人々が答えたくないのか分かりませんが、彼らはただ否定的な投票になります。これは私が追加するために使用したコードです(htmlドキュメントを追加します)

$(function(){
              $("a[rel='tab']").click(function(e){
                pageurl = $(this).attr('href');
                $.get(pageurl, function(html) {
                          $(html).hide().appendTo('body').fadeIn(500);
                      }, 'html');

                //to change the browser URL to the given link location
                if(pageurl!=window.location){
                  window.history.pushState({path:pageurl},'',pageurl);
                }
                //stop refreshing to the page given in
                return false;
              });
            });

divを削除するこのコード

function close(){

        $("#mainContent").fadeOut(500, function() { $(this).remove(); });
        window.history.back();
} ;
4

1 に答える 1

0

追加/削除しようとしているドキュメントが見えませんが、次のようになっていると思います:

<link rel="stylesheet" href="style.css">
<div id="main-content">
  <p>Blah blah blah</p>
</div>

そのコンテンツを追加すると、すべてが挿入されます。それを削除すると、削除されるのはdiv#main-content. すべてを削除するには、次の 2 つのアイデアが思い浮かびます。

  • できれば、ドキュメントを別のドキュメントでラップし、<div>代わりにそれを削除します
  • <link>または、 「div#main-content」の兄弟である要素を選択することもできますが、それはより予測不可能になる可能性があります。

追加するドキュメントがそのように見えない場合は、OP でそれがどのように見えるか、および<link>要素がどこから来ているかを説明してください。

別のページで HTML プレビューなどを行っている場合は、代わりに iframe の作成を検討してください。AJAX を使用して一時 URL をソースとして作成します。利点は、2 つの DOM を効果的にマージするときに発生する競合を回避できることです。

于 2012-08-15T22:08:31.103 に答える