Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript检测当前页面并更改超链接颜色_Javascript_Hyperlink - Fatal编程技术网

Javascript检测当前页面并更改超链接颜色

Javascript检测当前页面并更改超链接颜色,javascript,hyperlink,Javascript,Hyperlink,我使用下面的javascript来检测我所在的页面URL并更改超链接颜色 使用名为“current”的CSS类 但是它不能检测子页面,比如,javascript是产品的子页面,所以当我在javascript页面中时,应该使用“当前”CSS类启用产品超链接菜单 $(function(){ $('a').each(function() { if ($(this).prop('href') == window.location.href) { $(thi

我使用下面的javascript来检测我所在的页面URL并更改超链接颜色 使用名为“current”的CSS类

但是它不能检测子页面,比如,javascript是产品的子页面,所以当我在javascript页面中时,应该使用“当前”CSS类启用产品超链接菜单

$(function(){
      $('a').each(function() {
        if ($(this).prop('href') == window.location.href) {
          $(this).addClass('current');
        }
      });
    });

对于每个链接,您都希望查看href是否是当前页面的基础

$(function(){
  var windowHref = window.location.href;

  $('a').each(function(index) {
    var linkHref = $(this).prop('href');
    // assume "home" is the first link
    if (index === 0) {
      if (windowHref === linkHref) {
        $(this).addClass('current');
      }
    } else if (windowHref.indexOf(linkHref) === 0) {
      $(this).addClass('current');
    }
  });
});

您可以将每个的值打印到日志(
console.log
)中吗。您必须确保链接具有
http://www.theFullUrl/subpage
因为
window.location.href
会返回类似的结果。为什么要使用
==0
而不是
==0
?这是比较同类内容的严格方法(而且速度稍快),除非你打算将苹果和橙子进行比较(或字符串到数字):)有关参考信息,请参阅。@tommyTheHitMan这不适用于主页链接。无论我进入哪个页面,主页菜单链接都是“当前”类。@Rapide您没有提供任何上下文,但我假设您的主页是指yourdomain.com。根据“基本页面”的定义,是的,主页是域中每个页面的基础。你想突出显示除索引外的所有页面吗?@tommyTheHitMan我也想突出显示主页链接。但每当我在其他页面,例如产品页面,主页链接是与当前类。当我在其他页面时,如何添加此异常主页链接未突出显示,但当我在主页时,它突出显示。