猿问

如果所有下一个兄弟姐妹都被隐藏,则隐藏一个列表项

我有以下清单:


<ul>

  <li class="title">A</li>

  <li class="item" style="display: none">a1</li>

  <li class="item" style="display: none">a2</li>


  <li class="title">B</li>

  <li class="item" style="display: none">b1</li>

  <li class="item">b2</li>

</ul>

我想创建一个JavaScript函数,该函数检查A之后的两个列表项是否都设置为显示:无。如果它们都设置为显示:无,则将其标题“ A”也设置为显示:无。


我希望脚本也对B进行检查,但不要隐藏“ B”,因为并非所有其后的兄弟姐妹都设置为显示:无。


我正在考虑如何继续几个小时,但不知道。您能给我一些想法吗,我不一定要编写代码,而只是想法。谢谢!


偶然的你
浏览 145回答 2
2回答

饮歌长啸

如果您使用jQuery没问题,我发现下面的代码会更简单。您可以在此处了解有关nextAll()的更多信息。const titles = $('.title');titles.each(function() {&nbsp; &nbsp; const siblings = $(this).nextAll().slice(0, 2);&nbsp; &nbsp; const siblingsWithDisplayNone = siblings.filter(function() {&nbsp; &nbsp; &nbsp; &nbsp; return $(this).css('display') == 'none'&nbsp; &nbsp; });&nbsp; &nbsp; if (siblings.length === siblingsWithDisplayNone.length) {&nbsp; &nbsp; &nbsp; &nbsp; $(this).css('display', 'none')&nbsp; &nbsp; }});看到它在这里行动
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答