如何从表中删除某些行?

Posted

技术标签:

【中文标题】如何从表中删除某些行?【英文标题】:How to remove certain rows from a table? 【发布时间】:2020-09-23 14:22:03 【问题描述】:

这似乎以前被问过,但在称它为重复之前,请仔细阅读;)

我有一张桌子

<table id="MyTable">
    <tr class="k-master-row"></tr>
    <tr class="k-detail-row"></tr>
    <tr class="k-master-row"></tr>
    <tr class="k-master-row"></tr>
    <tr class="k-detail-row"></tr>
    <tr class="k-master-row k-state-selected"></tr>
    <tr class="k-detail-row"></tr>
    <tr class="k-master-row"></tr>
    <tr class="k-master-row"></tr>
    <tr class="k-detail-row"></tr>
</table>

具有“k-master-row”类的每一行都可以具有“k-detail-row”类的行。如果 k-master-row 有一个相关的 k-detail-row 那么它的正下方就像这样

<tr class="k-master-row"></tr>
<tr class="k-detail-row"></tr>

现在我遇到的问题是我需要删除所有 k-detail-rows,除了这个细节行

<tr class="k-master-row k-state-selected"></tr>
<tr class="k-detail-row"></tr>

所以如果 k-master-row 有一个 k-state-selected 类,我需要保留它的 k-detail-row 并删除其他 k-detail-rows。

我知道我可以使用删除 k-detail-rows

$('#MyTable .k-detail-row').remove()

但这会删除所有 k-detail-rows,这不是我想要的..

所以,简而言之,使用 jquery 或 javascript,我如何删除与具有 k-state-selected 类的主行无关的所有详细信息行?

【问题讨论】:

【参考方案1】:

逻辑似乎是您希望删除所有不立即跟随k-state-selected元素的.k-detail-row元素。

在这种情况下:

$('#MyTable :not(.k-state-selected) + .k-detail-row').remove();

换句话说,删除所有.k-detail-row元素,其紧邻的兄弟元素不是.k-state-selected的元素。

【讨论】:

是的,这行得通。我将不得不对此进行更多研究:不是您使用的。一旦可以,我会标记为答案。谢谢! 不客气。编辑以提供更多解释。 感谢您的解释,我很感激。所以 + 符号意味着紧接在前面? 立即进行。所以foo + bar 匹配所有紧跟在foo 之后的bars(即立即由)foo。这也是标准的 CSS,而不是 jQuery。

以上是关于如何从表中删除某些行?的主要内容,如果未能解决你的问题,请参考以下文章

如何从表中删除然后删除引用的已删除行? (postgresql)

如何从表中删除除前两个和最后一个之外的所有行?

如何在没有ORM的情况下使用SQLAlchemy查询从表中删除行?

如何从表中列出重复值? [复制]

一段时间后从表中删除行

从表中删除行(无法读取null的属性'data')