为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

偶然的你 2021-04-26 19:14:55
我有以下清单:<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”,因为并非所有其后的兄弟姐妹都设置为显示:无。我正在考虑如何继续几个小时,但不知道。您能给我一些想法吗,我不一定要编写代码,而只是想法。谢谢!
查看完整描述

2 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

如果您使用jQuery没问题,我发现下面的代码会更简单。


您可以在此处了解有关nextAll()的更多信息。


const titles = $('.title');


titles.each(function() {

    const siblings = $(this).nextAll().slice(0, 2);

    const siblingsWithDisplayNone = siblings.filter(function() {

        return $(this).css('display') == 'none'

    });

    if (siblings.length === siblingsWithDisplayNone.length) {

        $(this).css('display', 'none')

    }

});

看到它在这里行动


查看完整回答
反对 回复 2021-04-29
  • 2 回答
  • 0 关注
  • 144 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信