gpt4 book ai didi

jQuery - 如果下一行包含则隐藏副标题

转载 作者:行者123 更新时间:2023-12-01 04:51:33 26 4
gpt4 key购买 nike

如果以下所有行都包含特定类,如何隐藏副标题行。当下一个子标题出现时,以下行停止。如何为下一个子标题执行此操作?

示例:隐藏 SUBHEADER 2 行,因为以下所有行都包含“no”。

<table>
<tr class='sub'>
<td colspan='3'>SUBHEADER 1</td>
</tr>
<tr class='row yes'>
<td>text</td>
<td>text</td>
<td>text</td>
</tr>
<tr class='row no'>
<td>text</td>
<td>text</td>
<td>text</td>
</tr>
<tr class='sub'>
<td colspan='3'>SUBHEADER 2</td>
</tr>
<tr class='row no'>
<td>text</td>
<td>text</td>
<td>text</td>
</tr>
<tr class='row no'>
<td>text</td>
<td>text</td>
<td>text</td>
</tr>
<tr class='sub'>
<td colspan='3'>SUBHEADER 3</td>
</tr>
<tr class='row yes'>
<td>text</td>
<td>text</td>
<td>text</td>
</tr>
</table>
  • 我测试了这两个示例,它们都有效,但在我的环境中不起作用。然后我意识到我提供了一个不正确的示例,并为我的错误向 Gaby 和 Tats 道歉。

最佳答案

这样就可以了

// for each subheader row
$('tr.sub').each(function(){
var self = $(this),
// find all following rows until the next subheader
rows = self.nextUntil('.sub'),
// check if any of those rows contains a .no class
hasNo = rows.find('.no').length > 0;

// hide subheader if no .no class was found
self.toggle(hasNo);
});

演示位于 http://jsfiddle.net/EA8AB/

<小时/>

更新(在OP中澄清后)

您需要比较后续行数(如前所述)是否等于后续.no行数。

// for each subheader row
$('tr.sub').each(function(){
var self = $(this),
// find all following rows until the next subheader
rows = self.nextUntil('.sub'),
// check if rows number is equal with those of them that have the .no class
allAreNo = rows.filter('.no').length === rows.length;

// show/hide based on whether all are .no or not
self.toggle( !allAreNo );
});

演示位于 http://jsfiddle.net/EA8AB/2/

关于jQuery - 如果下一行包含则隐藏副标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19284187/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com