【问题标题】:Jquery/Ajax remove div from page loaded by ajaxJquery/Ajax 从 ajax 加载的页面中删除 div
【发布时间】:2010-12-28 23:29:38
【问题描述】:

我有一个通过 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() 函数,但这不起作用。有什么建议吗?

【问题讨论】:

  • 一个非常糟糕的方法:用 CSS 隐藏有问题的 div - &lt;div style="display:none"&gt;&lt;div id="statcount"&gt;Rows: &lt;?php echo $row_count; ?&gt;&lt;/div&gt;&lt;/div&gt;
  • @thirtydot:实际上我试过了,但它在最后的表格行中留下了一个间距。
  • @thirtydot:你知道吗,这确实有效。我只是移动了 div 而不是表格标签,然后手动将其设置为 display:none。这很糟糕,但如果没有其他选择,那么我现在就使用它。

标签: jquery ajax html


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:
    $('#statcount',data).remove();
    

    我不确定您将函数 updateList(data) 作为数据传递的值是什么,但在您的 html 中,除了 &lt;div id="statcount"&gt; 的 id 之外似乎没有其他值

    我假设您传递的是一个数字,但如果是这样,那么您的 &lt;div id="statcount"&gt; 应该是 &lt;div id="statcount1"&gt; 或您传递为 data 的任何值

    【讨论】:

    • 整个页面结果作为数据传递。我使用了一个名为 arte 的 jquery 插件,它是一个用于实时 ajax 调用的插件。因此,在成功时,我可以指定一个要运行的函数,该函数通过数据变量传递返回的结果。返回数据变量中只有一个名为 statcount 的 div。我试过 $('#statcount',data).remove();但它不起作用。
    【解决方案3】:

    一种比我在我的 cmets 中为您的问题提供的更好的方法(除非有无数行)是摆脱这个:

    <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() 函数来提取行数。

    【讨论】:

    • 在tr计数码上,有没有办法统计没有特定类的tr?如果一行有注释,还有一个额外的 tr,所以我只想计算没有分配注释类的 tr。
    • @John: "tr:not([class=notes])"
    猜你喜欢
    • 1970-01-01
    • 2012-12-08
    • 1970-01-01
    • 2015-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多