如何通过检查一系列URL来将活动状态应用于链接

时间:2015-03-05 07:22:27

标签: javascript jquery

不幸的是,我无法使用CMS输出菜单项的类别,并且必须对它们进行硬编码,因为我的客户需要它们按特定顺序出现。 CMS没有附加到特定类别的索引或订单。

这是我的HTML:

 <ul>
    <li><a href="/projects/" class=" active">All</a></li>
    <li><a href="/projects/?category=discovery" class="">discovery</a></li>
    <li><a href="/projects/?category=strategy" class="">strategy</a></li>
    <li><a href="/projects/?category=program+design" class="">program design</a></li>
    <li><a href="/projects/?category=implementation" class="">implementation</a></li>
    <li><a href="/projects/?category=creative" class="">creative</a></li>
    <li><a href="/projects/?category=evaluation" class="">evaluation</a></li>
</ul>

问题:

  1. 如何使用每个
  2. 的href值创建数组
  3. 如果匹配其中一个数组,我如何获取该数组并检查浏览器网址以查看它?若然,找到具有相同href的
  4. 并应用活动类?
  5. 非常感谢!

2 个答案:

答案 0 :(得分:0)

$(document).ready(function(){  

    $( "a" ).each(function() {
          var url = window.location.href; 

          if($(this).attr('href') == $.trim(url))
          {
              $(this).addClass('active');
          }
          else
          {
              $(this).removeClass('active');
          }
      });
  });

答案 1 :(得分:0)

您可以执行以下操作:

var link = window.location.href.match(/category\=.+/);

if (link)
{
   $('a[href$="'+link[0]+'"]').addClass('active');
}

或者您也可以这样做:

 $('a[href$="'+window.location.search+'"]').addClass('active');