两种简单实现菜单高亮显示的JS类

近期在写一个博客管理后台的前端,涉及在同一页面两种高亮显示当前菜单的需求.记得当年写静态页时,为了实现高亮都是在每个页面加不同的样式,呵.高亮显示我觉得对于web前端来说,是比较常用到的效果,正好此次又要用到,特地整理出我所写的两种高亮类.

其实思路很简单,第一种方法是通过遍历链接组的href值,通过indexOf判断href值是否被包含在浏览器当前url值中.此方法有一定局限,比如对于iframe内的菜单是不能这样判断的; 第二种方法适用范围更广一样,实现思路也比较简单,即通过判断点击,给点击项加载高亮样式.

第一种判断当前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 : 高亮显示时的样式class名.

调用方法:

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 : 点击后显示的样式class名.

调用方法:

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

此方法扩展性较强,比如可以通过判断parentNode.nodeName值来使某一类型链接不被遍历,等等.
源码下载及演示
鉴于有朋友不知道如何使用,我特地整理了一下我之前写的与这个类有关的页面,给一个DEMO页面和下载地址,需要的朋友可以查看或下载.
点此查看DEMO 点此下载DEMO

时间: 2024-11-03 21:14:45

两种简单实现菜单高亮显示的JS类的相关文章

两种简单实现菜单高亮显示的JS类代码_javascript技巧

记得当年写静态页时,为了实现高亮都是在每个页面加不同的样式,呵.高亮显示我觉得对于web前端来说,是比较常用到的效果,正好此次又要用到,特地整理出我所写的两种高亮类. 其实思路很简单,第一种方法是通过遍历链接组的href值,通过indexOf判断href值是否被包含在浏览器当前url值中.此方法有一定局限,比如对于iframe内的菜单是不能这样判断的; 第二种方法适用范围更广一样,实现思路也比较简单,即通过判断点击,给点击项加载高亮样式. 第一种判断当前URL值高亮类代码: 复制代码 代码如下:

JS 动态加载js文件和css文件 同步/异步的两种简单方式_javascript技巧

/*动态添加js或css,URL:文件路径,FileType:文件类型(js/css)*/ function AddJsFiles(URL,FileType){ var oHead = document.getElementsByTagName('HEAD').item(0); var addheadfile; if(FileType=="js"){ addheadfile= document.createElement("script"); addheadfile

用JQuery实现全选与取消的两种简单方法

 本篇文章主要是对JQuery实现全选与取消的两种简单方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 用JQUERY实现全选和取消全选,没有js那么繁琐,而且支持更多浏览器.  代码如下: <mce:script type="text/javascript"><!--   $(function() {       $("#checkall").click(function() {           $("input[@na

JavaScript数值千分位格式化的两种简单实现方法_javascript技巧

在对数值进行格式化的时候,一个常见的问题是按照千分位格式化,网上对这个问题已经有很多种解决方法了,还可以利用Array.prototype.reduce方法来实现千分位格式化. function formatNumber(num) { if (isNaN(num)) { throw new TypeError("num is not a number"); } var groups = (/([\-\+]?)(\d*)(\.\d+)?/g).exec("" + nu

Java之递归求和的两种简单方法(推荐)_java

方法一: package com.smbea.demo; public class Student { private int sum = 0; /** * 递归求和 * @param num */ public void sum(int num) { this.sum += num--; if(0 < num){ sum(num); } else { System.out.println("sum = " + sum); } } } 方法二: package com.smbea

js实现菜单高亮显示的javascript类代码

//@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(elem

局域网打印机连接的两种简单方法

  第一步如下图,点击电脑左下角系统图标logo,XP系统有"开始"两个安,win7是一个玻璃圆球体,如下图所示. 第二步如下图:点击"运行"在打开中输入打印所连接的主机IP,按回车进入该机的共享. 第三步如下图:看到打印机图标双击打开它,等出现打印机任务栏时你已连接上了这台打机可以打印了. 二.在网上邻居里找到打印机所连接主机进行连接. 第一步:点击桌面上的"网上邻居"进入如下图示,进入整个网络. 第二步:点击Microsoft Windows

SQL两种简单分页查询方式

                   以前我们或许都用过了linq的skip and take方式进行分页查询,但是很少自己写sql的分页查询,因为大多数时候,我们都是在调用别人的方法.              最近看到一个文档,感觉方法里面实现的分页查询进入数据库调用的时候,实际最底层调用的还是SQL的分页查询,例如,我们用linq写个分页查询,转成sql表达式后发现:                               实际调用的时候,才发现SQL底层是这样进行分页的.      

提高网站访问速度的两种简单方法

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 引言:我们平时在上网的时候,当你在百度中搜索一个内容,点击进入这个网页或者是你直接输入网址进入某个网站,需要等待十几秒钟的时间才能完全打开你所需要的页面,相信没有几个人愿意再继续浏览该站的其它页面了,因为人在等待的过程当中,心情是极为痛苦不舒服的,就像你约了某位美女(或帅哥),到了约定的时间,但她(他)确迟迟末到,那么这个心情大家应该都很好理