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 之后,会执行 line 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 回答