如何从表中删除某些行?
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
之后的bar
s(即立即预由)foo
。这也是标准的 CSS,而不是 jQuery。以上是关于如何从表中删除某些行?的主要内容,如果未能解决你的问题,请参考以下文章
如何从表中删除然后删除引用的已删除行? (postgresql)