You need to enable JavaScript to run this app. 基于URL的菜单active类添加:访问products2、subproducts时高亮products.php菜单
优惠活动
大模型
产品
解决方案
定价
更多

基于URL的菜单active类添加:访问products2、subproducts时高亮products.php菜单

逻辑问题定位

你现有代码的匹配逻辑是精准比对当前URL最后一段文件名和菜单a标签的href值,当访问products2、subproducts页面时,提取到的当前路径和products.php并不相等,自然无法触发给products菜单项加active类的逻辑。

实现方法

只需要在原有路径提取逻辑之后,加一层简单的路径映射规则,把需要关联同一菜单状态的页面,自动映射到products菜单项对应的路径上,再走原来的匹配加类流程即可。

调整后的完整代码

$(document).ready(function($){
  // 提取当前URL的最后一段路径
  var path = window.location.pathname.split("/").pop();
  
  // 兼容首页空路径的场景
  if (path === '') {
    path = 'home.php';
  }

  // 配置需要共用active状态的路径映射
  // 格式:'当前访问的页面路径': '需要匹配的菜单href值'
  const activePathMap = {
    'products2.php': 'products.php',
    'subproducts.php': 'products.php'
  };

  // 命中映射规则时,替换匹配路径
  if (activePathMap[path]) {
    path = activePathMap[path];
  }

  // 匹配对应菜单,添加active类
  const target = $('ul li a[href="' + path + '"]');
  target.addClass('active');
});

可维护性提示

  • 后续如果还有其他子页面需要触发products菜单的active状态,直接在activePathMap里补键值对就行,不用零散写if判断
  • 原代码addClass('active ')里带的多余末尾空格已经去掉,避免生成异常类名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.23 17:15:03