【问题标题】:Jquery-Delete all the row if first td of row does not have the id with given valueJquery-如果行的第一个 td 没有给定值的 id,则删除所有行
【发布时间】:2012-02-23 21:02:00
【问题描述】:

我有一张有很多行的表。我想从中删除除第一个 td 具有给定 id 的行之外的所有行。

我在中途

 <tr>
   <td id="1" class="td_link" onclick="viewPointDetails(1)">Barrackpur</td>
   <td class="td_link" id="11" class="edit_client" onclick="editPoint(1)">India</td>
 </tr>


 <tr>
   <td id="2" class="td_link" onclick="viewPointDetails(2)">Madiwala</td>
   <td class="td_link" id="11" class="edit_client" onclick="editPoint(1)">India</td>
 </tr>

还有我的 jquery;

   $('tr').each(function () {   
       if first td does not have given  id say 1  then delete this row.
   });  

我的第一行是标题。所以我不想检查这个(不想删除这一行)。

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    您应该能够在没有each 循环的情况下实现此目的:

    $("tr:not(:has(#1))").remove();
    

    这使用:has 选择器返回包含与选择器匹配的元素的行。它使用 :not 选择器来获得相反的结果(因此您最终会得到所有 not 包含与选择器匹配的元素的行),然后使用 remove 删除其中的所有元素匹配的集合。

    【讨论】:

    • 完美詹姆斯.. 我的第一行是标题。所以我不想检查这个(不想删除这一行)。我该怎么做??
    • 查看 jQuery API 中的 :gt 选择器。您应该可以将其添加到我的答案中的示例中。
    • 如果我将 id 作为变量传递,例如而不是值 1,它的变量称为 pointId (pointId = 1) 那么上面的代码如何变化??
    • $("tr:gt(0):not(:has(#" + pointId + "))").remove(); - 选择器只是一个字符串,所以你可以像往常一样连接它。
    【解决方案2】:

    试试这个

    $(document).ready(function () {
         $('tr').each(function () {   
          if($(this).find("td:first").attr("id") == 2)
          {
            $(this).remove();
          }
      });
    });
    

    【讨论】:

      猜你喜欢
      • 2012-03-14
      • 2022-10-09
      • 1970-01-01
      • 2020-05-28
      • 2022-06-28
      • 2013-08-09
      • 2010-09-27
      • 2020-06-15
      • 1970-01-01
      相关资源
      最近更新 更多