javascript - 从表中删除除特定行以外的所有行

标签 javascript jquery

我想从表中删除除 ID 为“row0”的行之外的所有行:

<table class="mytable">
    <tr id="row0" class="myrow">
        <td>aaa</td>
    </tr>
    <tr class="myrow">
        <td>bbb</td>
    </tr>
    <tr class="myrow">
        <td>ccc</td>
    </tr>
</table>

但是下面的 JQuery 代码删除了所有行:

$('.mytable').children().not('#row0').remove();

有人可以解释为什么会这样吗?我认为 ID 为“row0”的 child 会被排除在外,但显然情况并非如此。

我已经找到了另一种方法来做到这一点,但仍然很好奇为什么上述方法不起作用:

$('.mytable').find('tr:not(#row0)').remove();

最佳答案

因为 table 元素的子元素是 theadtfoottbody 元素。 A tbody element is always created in the generated DOM ,即使它没有明确写入 HTML 代码。

您还可以:

$('.mytable tr').not('#row0').remove();

$('#row0').siblings().remove();

关于javascript - 从表中删除除特定行以外的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5683859/

相关文章:

javascript - 使用 JavaScript 获取以像素为单位的字符串长度

javascript - eval 返回未定义,浏览器返回结果

javascript - 具有从一个数据数组到多个数组的函数的 Enter() 语句? (添加多个渐变路径)

javascript - jQuery 键盘功能 keyPress

javascript - 定位从固定到静态

javascript - JSPDF 保存在本地系统上,但我想将它保存在服务器上

javascript - 当我回到 wp8 中的应用程序时恢复相机?

javascript - 触发非冒泡事件jquery

javascript - 通过 jQuery 设置 HTML <param> 元素?

javascript - 如何使用 javascript/jquery 更改 flexbox 元素的宽度