如何使用jQuery删除列表中第4个至末尾的<li>元素?
解决方法
你的代码逻辑完全错了——你遍历的是目标子ul元素,却判断它是不是li:eq(2),两者根本不沾边,所以删不掉目标元素。
下面给你两种简单可行的jQuery写法:
方法一:使用slice()
slice()可以选取从指定索引开始到末尾的元素(索引从0开始计数),你要删的是第4个及以后的li,对应索引3及以上,写法如下:
$('#ip-top-menu > li:eq(2) > ul li').slice(3).remove();
方法二:使用:gt()选择器
:gt(n)会匹配索引大于n的元素,这里n填2就能选中第4个及以后的li:
$('#ip-top-menu > li:eq(2) > ul li:gt(2)').remove();
为啥你之前的代码不行?
你用each遍历的是<ul>元素,然后判断这个ul是不是li:eq(2),这条件永远不成立,自然不会执行删除操作。另外就算逻辑正确,return false会直接终止循环,也没法删掉所有目标li。
内容的提问来源于stack exchange,提问作者user2631108
相关产品推荐
相关产品推荐

