两种JavaScript实现菜单高亮显示的类封装方案

作者:流萤

时间:2026-10-24

浏览:500

本文介绍了两种在Web前端实现菜单当前项高亮显示的JavaScript类封装方法。第一种通过遍历链接并比对URL包含关系实现,适用于常规页面;第二种通过绑定点击事件动态切换样式,适用范围更广且具备扩展性。文章提供了完整的代码示例、参数说明及调用方式,帮助开发者快速集成菜单高亮功能。

文章目录

引言与方案概述

在早期制作静态网页时,为了区分当前页面,通常需要在每个页面单独添加不同的样式。高亮显示是当前Web前端开发中非常常见且实用的效果。鉴于近期再次遇到此类需求,特此整理并分享两种个人编写的菜单高亮类实现方案。



这两种方法的实现思路均较为直观。第一种方法通过遍历菜单链接组的href属性,利用indexOf判断当前浏览器URL是否包含该链接地址。需要注意的是,此方法存在一定局限性,例如无法直接处理iframe内部菜单的高亮判断。第二种方法适用范围更广,其核心思路是通过监听点击事件,为被点击的菜单项动态加载高亮样式。



基于URL匹配的高亮类实现

第一种方案:基于当前URL判断的高亮类实现代码如下:


具体代码实现如下:

 
//@Mr.Think---判断URL实现菜单高亮显示
function highURL(menuId,classCur){
if(!document.getElementById) return false;
if(!document.getElementById(menuId)) return false;
if(!document.getElementsByTagName) return false;
var menuId=document.getElementById(menuId);
var links=menuId.getElementsByTagName("a");
for(var i=0; i<links.length; i++ ){
var menuLink=links[i].href;
var currentLink=window.location.href;
if(currentLink.indexOf(menuLink)!=-1){
links[i].className=classCur;
} 
} 
} 

参数说明:



1.menuId:指定包含链接组的容器ID;


2.classCur:定义高亮状态下的CSS类名。


调用方法示例:



window.onload=function highThis(){highURL("youId","youhighclass");}


基于点击事件的高亮类实现

第二种方案:基于点击事件后高亮当前项的类实现代码如下:


具体代码实现如下:

 
//@Mr.Think---点击实现高亮显示
function highOnclick(elemId,classCur) {
if (!document.getElementsByTagName) return false;
if (!document.getElementById) return false;
if (!document.getElementById(elemId)) return false;
var elemId = document.getElementById(elemId);
var links = elemId.getElementsByTagName("a");
for (i = 0; i < links.length; i++) {
links[i].onclick = function() {
for (n = 0; n < links.length; n++) {
links[n].className = "";
this.className = classCur;
this.blur();
} 
} 
} 
} 

参数说明:



1.elemId:指定包含链接组的容器ID;


2.classCur:定义点击后显示高亮的CSS类名。


调用方法示例:



window.onload=function highThis(){highOnclick("youId","youhighclass");}


该方法具有较强的扩展性,例如可以通过判断parentNode.nodeName值来排除特定类型的链接不被遍历,从而满足更复杂的业务需求。


源码与演示资源

源码下载及演示地址


考虑到部分用户可能不清楚具体使用方法,此处整理了包含该类的相关页面示例。提供了DEMO演示页面及源码下载地址,有需要的朋友可自行查看或下载参考。



打包下载地址

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章