jQuery“select all except”

前端之家收集整理的这篇文章主要介绍了jQuery“select all except”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图选择表的第一行。注意:第一行被包装在一个标签中,所以:
<table>
  <thead>
    <tr>  <!-- first row --> </tr>
  </thead>
  <tbody>
    <tr>  <!-- body --> </tr>
  </tbody>
  <tfoot>
    <tr>  <!-- body --> </tr>
  </tfoot>
</table>

如果不是包装标签,则‘select first row’提示可以正常工作。这是我试过但不行的:

$("*:not(thead)",tableSelector).remove();

即,我想使用“not tfoot”选择器摆脱tbody和tfoot选择器。因为我想从表中删除所有其他内容,除了< thead>和一切都在里面。所以基本上我想要做的是选择除thead以外的所有内容; intutuively的东西像:not(thead *)可以工作,但不是。

我的解决方法是$(“tbody,tfoot”,tableSelector).remove();但我想学习和了解如何使用相反(非选择器)。

解决方法

你的问题不完全清楚。选择单个表中的第一行:
$("table tr:first")...

或相反:

$("table tr:not(:first)")...

会做到这一点,但是如果有多个表(即使有三个表也只会选择一行),那么它就会中断。你可以解决这个问题:

$("table").each(function() {
  $(this).find("tr:first")...
});

您可以在THEAD中获取所有行:

$("table > :not(thead) > tr")...

编辑:我觉得你过度复杂了。如果你想删除除THEAD及其内容之外的所有内容,那就比较简单:

$("table > :not(thead)").remove();

如果您想将TBODY和TFOOT元素放在适当位置,请更改为:

$("table > :not(thead) > tr").remove();

猜你在找的jQuery相关文章