使用URL子串的jQuery活动状态导航

时间:2014-02-11 15:10:27

标签: javascript jquery navigation

我已经设置了一个活动状态的jQuery导航。现在我想修改代码,以便它使用URL的子字符串来执行活动状态。我想让脚本仅检测URL中“%5E”之后的数字,因为我的所有URL都完全相同,唯一不同的是“%5E”之后的数字。谢谢大家!

  $(function() {
    var pathname = window.location.pathname;
    var page = pathname.match(/\/([^\/]+\.[^\/]+)/)[1];
    var target = $('#menu a[href*="' + page + '"]');
    $(target).addClass('active');
  }); 

<ul id="menu">
  <li id="Div1"><a href="/cat/1267-sale.aspx/1/80000000%5E1269">All</a></li>
  <li id="Div2"><a href="/cat/1267-sale.aspx/1/80000000%5E1266">Div1</a></li>
</ul>

1 个答案:

答案 0 :(得分:1)

正则表达式应该是......

var page = pathname.match(/\^(\d+)$/)[1];

正如Shanoop建议的那样,肯定会在您的网址中使用^重新考虑。

---更新---

根据OP发布的新网址格式更新了正则表达式

var pathname = "/cat/1267-sale.aspx/1/80000000%5E1269";
var match = pathname.match(/[%5E|^](\d+)$/);
var page = match ? match[1] : null;

小提琴:http://jsfiddle.net/49s7F/2/