0

jQueryを使用してhtmlコードをロードし、このコードからいくつかのクラスを削除したいのですが、私のコードは次のとおりです。

<!DOCTYPE html>
<html>
   <head>
      <script src="http://code.jquery.com/jquery-latest.js"></script>
   </head>
   <body>
      <div id="new-nav"></div>
      <script>
         $("#new-nav").load("/php/grab.php");

      </script>
      <script>
         $('.main_title_news_submain_block').remove();
      </script>
   </body>
</html>

.remove関数が機能しないという問題ですが、理由がわかりませんか?

4

4 に答える 4

3

document.readyそのhtml要素がページの読み込み後の場合は内部にラップします。

$(function () {
   $('.main_title_news_submain_block').remove();
});

を使用してロードした場合.loadは、コールバックに追加します。

$("#new-nav").load("/php/grab.php", function () {
   $('.main_title_news_submain_block').remove();
});
于 2012-09-20T16:40:19.650 に答える
2

メソッドのコールバックで試してみましたloadか?

  $(function(){
      $("#new-nav").load("/php/grab.php",function(){ 
         $('.main_title_news_submain_block').remove();              
      });
  });

「完全な」コールバックが提供されている場合は、後処理とHTML挿入が実行された後に実行されます。

したがって、remove()load関数がコンテンツをDOMの指定されたdivにロードした後、行withメソッドが実行されます。

于 2012-09-20T16:41:19.110 に答える
2

.remove()コールバック関数を使用してコンテンツがロードされた後に実行する必要があります。

$("#new-nav").load("/php/grab.php", function(){
    /*removes the element with class main_title_news_submain_block*/
    $('.main_title_news_submain_block').remove();
});

編集:IDがnew-navの要素がdomにロードされた後にロードが発生していることを確認するために、すべてをドキュメントにラップすることもできます。

$(document).ready(function(){
    $("#new-nav").load("/php/grab.php", function(){
        /*removes the element with class main_title_news_submain_block*/
        $('.main_title_news_submain_block').remove(); 
    });
});
于 2012-09-20T16:41:20.003 に答える
1

どこでもDOM対応機能を使用していないようです。異常が見られないように、必ずそこにスクリプトを記述してください。

<script type="text/javascript">
  $(function() {
      $("#new-nav").load("/php/grab.php" , function() {
           $('.main_title_news_submain_block').remove(); 
       });
   });
</script>
于 2012-09-20T16:50:13.223 に答える