You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery如何选中所有类名相同的列表,统一隐藏超出前4项的元素?

问题原因

你所用的jQuery选择器$('.feature-list li:gt(3)')中,:gt()是对全局匹配到的所有li元素组成的集合统一计算索引,而非针对每个feature-list列表内部的li单独统计索引,所以才会出现仅第一个列表的超出项被隐藏的问题。

解决方法

方法1:遍历列表单独处理(无需修改原有HTML,适配你的现有逻辑)

直接替换原有JS代码即可:

// 默认隐藏每个列表超出前4项的内容
$('.feature-list').each(function() {
  $(this).find('li:gt(3)').hide();
});

$('.more-btn').click(function() {
  // 点击任意more按钮,展开两个列表的所有项
  $('.feature-list').each(function() {
    $(this).find('li:gt(3)').show();
  });
  // 可选:隐藏两个more按钮避免重复点击
  $('.more-btn').hide();
});

方法2:用CSS实现默认隐藏(更简洁高效)

先添加CSS样式:

/* 每个列表第5项及以后默认隐藏 */
.feature-list li:nth-child(n+5) {
  display: none;
}
/* 展开状态下显示所有项 */
.feature-list.is-expanded li:nth-child(n+5) {
  display: list-item;
}

JS可以简化为:

$('.more-btn').click(function() {
  $('.feature-list').addClass('is-expanded');
  $('.more-btn').hide();
});

内容的提问来源于stack exchange,提问作者user1038814

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 12:51:04