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

如何独立为每个.ulInCollapse的li元素设置分组间隔样式(弃用JS)

解决方案

优先纯CSS实现(无需JS)

完全通过CSS选择器即可实现每个.ulInCollapse容器独立处理li样式,不需要额外类名或JS:

/* 每组第一个li(奇数位置)添加上下内边距 */
.ulInCollapse li:nth-child(2n+1) {
    padding: 15px 0;
}

/* 每组第二个li(偶数位置)取消上下内边距 */
.ulInCollapse li:nth-child(2n) {
    padding: 0;
}

效果说明:

  • 每个.ulInCollapse下的li会按自身位置独立计算:第1、3、5...个li(每组第一个)自动获得15px上下内边距;
  • 第2、4、6...个li(每组第二个)内边距为0;
  • 当容器内li总数为奇数时,最后一个li属于奇数位置,自动保留15px上下内边距;总数为偶数时,最后一个li是偶数位置,内边距为0,完全符合需求。

修正后的JS方案(备用)

如果因为兼容性问题需要用JS,修正你之前代码的两个核心错误:

  1. 获取当前ul下的li数量,而非直接用ul元素的length;
  2. 选择当前ul下的最后一个li,而非全局选择。
const ulList = document.querySelectorAll(".ulInCollapse");
ulList.forEach(ul => {
  // 获取当前ul下的li总数
  const liCount = ul.querySelectorAll('li').length;
  // 获取当前ul下的最后一个li
  const lastLi = ul.querySelector('li:last-child');
  
  if (liCount % 2 !== 0) {
    lastLi.style.paddingTop = "15px";
  } else {
    lastLi.style.paddingTop = "0px";
  }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 02:20:48