用js查找法实现当前栏目的高亮显示的代码

当前栏目高亮显示
       JS判断当前URL对当前栏目高亮显示,重点是用到了indexOf来判断两个字符串中第一次出现的位置,如果没有出现就返回-1,出现就返回
其它,并与返回其它结果的那个字符串所在元素定义一个class.

HTML


代码如下:

<div id="nav">  
<ul>  
<li><a href="http://www.jb51.net/html/list/index_127.htm" title="资讯中心"><span>资讯中心</span></a></li> 
<li><a href="http://www.jb51.net/html/list/index_1.htm" title="网络编程"><span>网络编程</span></a></li> 
<li><a href="http://www.jb51.net/html/list/index_104.htm" title="数据库"><span>数据库</span></a></li> 
<li><a href="http://www.jb51.net/html/list/index_96.htm" title="脚本专栏"><span>脚本专栏</span></a></li> 
<li><a href="http://www.jb51.net/html/list/index_7.htm" title="实用技巧"><span>实用技巧</span></a></li> 
<li><a href="http://www.jb51.net/html/list/index_84.htm" title="软件编程"><span>软件编程</span></a></li> 
<li><a href="http://www.jb51.net/html/list/index_8.htm" title="网页制作"><span>网页制作</span></a></li> 
<li><a href="http://www.jb51.net/html/list/index_86.htm" title="操作系统"><span>操作系统</span></a></li> 
<li><a href="http://www.jb51.net/html/list/index_11.htm" title="经典网摘"><span>经典网摘</span></a></li> 
<li><a href="http://www.jb51.net/html/list/index_27.htm" title="网站技巧"><span>网站技巧</span></a></li> 
<li><a href="http://www.jb51.net/html/list/index_99.htm" title="免费资源"><span>免费资源</span></a></li> 
<li><a href="http://www.jb51.net/html/list/index_54.htm" title="关于我们"><span>关于我们</span></a></li> 
<li><a href="http://www.jb51.net/search.asp" title="文章搜索"><span>文章搜索</span></a></li> 
</ul>  
</div>

JS


代码如下:

var myNav = document.getElementById("nav").getElementsByTagName("a");  
for(var i=0;i<myNav.length;i++)  
{  
   var links = myNav[i].getAttribute("href");  
    //alert(links)  
   //alert(myNav[i]);  
   var myURL = document.location.href;   
   if(myURL.indexOf(links) != -1)  
   {  
      myNav[i].className="d";  
    }  
}

当前栏目高亮显示不知道你明白了没有?没有的话,我说详细点。首先,你点击一个连接,比如: <li><a 
href="http://www.jb51.net/html/list/index_127.htm" title="资讯中心">资讯中心</a></li> 
点击之后浏览器发生了什么变化呢?是的,就是地址栏变成了:
http://www.jb51.net/html/list/index_127.htm
使用 document.location.href; 
取得的就是这个地址(http://www.jb51.net/html/list/index_127.htm)。
然后我们再遍历当前网页上的所有连接,取得每个连接href的值。遍历的代码: 


代码如下:

var myNav = document.getElementById("nav").getElementsByTagName("a");  
for(var i=0;i<myNav.length;i++)  
{  
   var links = myNav[i].getAttribute("href");  
}

使用indexOf函数来比较是否页面的所有连接中,有关键字在http://www.jb51.net/html/list/index_127.htm中出现。若有的话,就表
明是当前连接,那么就修改当前连接的样式。这就实现了当前栏目高亮显示,当前栏目高亮显示是一个很实用的技巧,在增加用户体验方面尤
其有好处。但在实用过程中,可能需要注意一些细节问题,比如搜索吧的博客是用外链的方式来连接的,那么在处理的时候,点了这个外链的
时候是否高亮呢?这里也只是我觉得当前栏目高亮显示时可能出现的问题稍微说一下,说不定你已经有解决方法了。

(0)

相关推荐

  • 用JS将搜索的关键字高亮显示实现代码

    用JS让文章内容指定的关键字加亮 是这样的.. 现在有这些关键字:美容,生活,购物当在文章里头出现这些关键字,就把它加亮显示.. 文章是生成静态页面的,而这些关键字是能随时更新的,所以我想用JS来实现...不知道怎样来实现这样的功能啊?特此求助 复制代码 代码如下: <script language="JavaScript">function highlight(key) { var key = key.split('|'); for (var i=0; i<key.

  • Angularjs实现搜索关键字高亮显示效果

    需求分析: 根据关键字搜索网页内容,并且高亮显示内容中的关键字 细节分析: 1.每次执行搜索操作,需清空上一次结果 2.需区分html标签和正常文本内容,否则为关键字添加样式以后会出现标签内容被显示的情况 代码思路: 利用正则表达式匹配关键字 使用javascript字符串替换的方式,将关键字替换成<span class='red'>关键字</span> 为了避免出现当关键字为 'p' 时候,将标签<p>替换成<<span>p</span>

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

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

  • angularjs实现搜索的关键字在正文中高亮出来

    1.定义高亮 filter 我们希望搜索的关键字在正文中高亮出来,正文内容就是过滤器的第一个参数,第二个参数就是搜索关键字,这样,我们的过滤器将会有两个参数了. 高亮的原理很简单,将需要高亮的内容使用 span 标记隔离出来,再加上一个高亮的 class样式 进行描述就可以了. app.filter("highlight", function($sce, $log){ var fn = function(text, search){ $log.info("text: &quo

  • js 玩转正则表达式之语法高亮

    学了几天正则,差不多该总结整理写成果了,之前就想写语法高亮匹配来着,不过水平不够,看着例子都不理解. 那么我们来分析下两位大神 次碳酸钴 和 Barret Lee 语法高亮实现. 先说 Barret Lee 的这篇 <几个小例子教你如何实现正则表达式highlight高亮> 之前看的时候只觉的神奇,特别是下面那个一步一步分开匹配的例子,更是霸气测漏,不过作者也说了,分开只是为了演示方便,可以很直观的看到这一步匹配了什么,不然一步到位匹配完成,你都不知道发生了什么就处理完毕了.来看下他的正则 复

  • javascript 关键字高亮显示实现代码

    关键字高亮显示 我们是一个专业的收集各类脚本学习资料的网站,尽量修正错误打造精品脚本类学习网站,我们为大家游戏脚本资源,源码,软件,asp,php,javascript等编程资料,是网页制作,网络编程,网站建设人士的聚集场所. 提供最新的网络编程.脚本编程.网页制作.网页设计.网页特效,为站长与网络编程从业者提供学习资料. 脚本,vbscript,正则表达式,jquery,dos,bat,批处理,javascript,Photoshop,HTML,div+css,ASP,PHP,ASP.NET

  • javascript高亮效果的二种实现方法

    js高亮方法一: 复制代码 代码如下: <script> function HighLight(nWord){ if(nWord!=''){ var keyword = document.body.createTextRange(); while(keyword.findText(nWord)){ keyword.pasteHTML("<span style='color:red;'>" + keyword.text + "</span>&

  • Javascript实现的CSS代码高亮显示

    相比JavaScript,CSS的语法就简单多了,主要是处理注释.字符串.CSS样式名称.CSS样式值.缩进和换行,具体详情请看代码. Javascript实现CSS代码高亮显示 body{ font-size:12px; line-height:1.8; font-family:'Courier New', Courier, monospace; } #area{ width:320px; height:120px; } body{ font-size:12px; line-height:1.

  • JavaScript实现的搜索及高亮显示功能示例

    本文实例讲述了JavaScript实现的搜索及高亮显示功能.分享给大家供大家参考,具体如下: 情景: 用来筛选列表中的数据, 由于单条数据很简短, 没有用php+mysql去实现筛选功能, 只用javascript进行筛选, 匹配的高亮, 或者将不匹配的隐藏掉 效果图: html: <div class="contracts-header">名称: <input type="text" value="" id="sea

  • jsp网页搜索结果中实现选中一行使其高亮

    我在做搜索结果时,为了好看需要将选中的行变的高亮些,我使用了一个onclick 事件: 复制代码 代码如下: var assno=""; function check(obj,che,rwid){ if(obj.checked==true){ document.getElementById(rwid).style.background ="blue"; assno=document.getElementById(che).value; alert(assno); }

随机推荐