Jquery / Ajax从ajax加载的页面中删除div

时间:2010-12-28 23:29:39

标签: jquery ajax html

我有一个通过jquery / ajax调用php页面的脚本。结果如下:

<table class="table" cellspacing="0" width="100%">
  <thead>
    <tr>
      <th scope="col">Title1</th>
      <th scope="col">Title2</th>
      <th scope="col">Title3</th>
    </tr>
  </thead>
  <tbody><?php echo $wait_list; ?></tbody>
</table>
<div>
  <div id="statcount">Rows: <?php echo $row_count; ?></div>
</div>

当通过jquery / ajax调用调用它时,它显示表信息,最后显示div信息。但是我不希望底部div显示,我实际上想要从数据中删除它,我只是把它放在那里所以我可以抓住计数并将它放在调用此文件的脚本的不同div中所以我没有必要使2单独的jquery / ajax调用。因此,当进行jquery / ajax调用时,它会成功运行:

  function updateList(data){
      $('#rowcount').html($('#statcount',data).html());
      $('#statcount',data).remove();
      $("#waitlist").html(data);
  }

正如您所见,我使用该div来填充页面上的单独区域。但是一旦完成,我不希望php页面中的div显示在#waitlist中。我尝试了如上所示的remove()函数,但这不起作用。有什么建议吗?

3 个答案:

答案 0 :(得分:1)

我认为您将数据作为jQuery选择器的scope参数传递,因此您没有获得任何匹配。 试试这个:

function updateList(data)
{       
    var lData = $("<div>" + data + "</div>");
    $('#rowcount').html($('#statcount',lData).html());       
    $('#statcount',lData).remove();       
    $("#waitlist").html(data);   
}

答案 1 :(得分:0)

$('#statcount',data).remove();

我不确定您将函数updateList(data)作为数据传递给了什么值,但是在您的html上看来,除了<div id="statcount">

的ID之外,您没有其他值

我假设您传递了一个号码,但如果是这样,那么您的<div id="statcount">应该是<div id="statcount1">或您传递的任何值data

答案 2 :(得分:0)

比我在你的问题评论中给出的更好的方法(除非有数十万行)将是摆脱这个:

<div>
  <div id="statcount">Rows: <?php echo $row_count; ?></div>
</div>

并使用jQuery计算行数,例如:

var rowCount = $("tr", data).length;
$('#rowcount').html('Rows: ' + rowCount);

或者,你可以这样做:

<table class="table" cellspacing="0" width="100%" rowcount="<?php echo $row_count; ?>">

并使用jQuery的.attr()函数来提取rowcount。