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

如何根据URL参数为元素添加active类?功能失效求助

问题解决:根据URL参数为元素添加active类失败

核心问题

你的代码无法生效有两个关键原因:

  1. jQuery选择器错误:获取到cate_no的数值后,直接用$(id)无法定位元素——jQuery的id选择器必须以#开头,纯数值无法被识别为有效的id选择器。
  2. 正则表达式转义问题:代码里的&是HTML实体转义字符,在JS正则中应该替换为普通的&,否则会导致参数匹配失效。

修正后的代码

jQuery代码

$(document).ready(function() {
    $.urlParam = function(name){
        // 替换HTML转义的&为普通&,保证正则匹配正常
        var results = new RegExp('[?&]' + name + '=([^&#]*)').exec(window.location.href);
        if (results == null) {
           return null;
        }
        return decodeURI(results[1]) || 0;
    }
    var id = $.urlParam('cate_no');
    // 为id添加#前缀,正确定位目标元素;同时判断id存在,避免空值报错
    if (id) {
        $('#' + id).addClass("active");
        // 若需要给父元素<li>加active类,可替换为下方代码:
        // $('#' + id).parent('li').addClass("active");
    }
});

对应HTML结构(无需修改)

<li><a id="800" href="/product/list_journal.html?cate_no=800">ex</a></li>
<li><a id="700" href="/product/list_journal.html?cate_no=700">ex</a></li>

额外提示

  • 确认页面已正确引入jQuery库,否则所有jQuery逻辑都无法执行
  • 若active样式需要作用在<li>标签而非<a>,直接使用注释中的parent('li')方法定位父元素即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 12:52:14