折叠多级菜单的实现方法

对于在网页上展示的课本目录这样的多级菜单,想要实现“完整显示某一章的目录,其它章只显示章名”的效果,最开始用的是 "hide all child elements but first" 作为关键字搜索,但是找到的语句 $(".unfocused").not(":first-child").hide(); 并没有效果。第二天早上再看这段代码的时候,决定逐语句测试,发现最开始的 $(".unfocused") 语句得到的是一个 Object 数组,这样直接隐藏第一个子节点之后的子节点的话,会把其余各章的章标题都隐藏掉。(注:各章 div 标签的类名为 unfocused,需完整显示的那一章的类名为 focused。)

后来想到可以用 each() 方法来隐藏每一章的非首个子节点,但是该方法后面需要跟匿名函数,这时在 StackOverflow 上看到了一个通过 CSS 后代选择器来选择子节点的方法,忽然想到自己可以用父节点的类名加上子元素选择器来隐藏各章的非首个子节点,$(".unfocused > div:not(:first-child)").hide(),一行语句就搞定了,so good!

不过最后在网页源码中测试的时候,发现语句又没有生效,检查了一下代码,原来是语句没有写完整,下面的语句中,最后一行的圆括号和分号都给漏掉了,真是粗心……

<script type="text/javascript">
  $(document).ready(function() {
    $(".unfocused > div:not(:first-child)").hide();
  });
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值