将类添加到适合url的子级

时间:2011-02-09 22:02:41

标签: javascript jquery hash location

我创建了一个单页面布局网站,当用户来自Google或为其添加书签时,菜单中不显示活动/当前链接。

我制作了一个很好的脚本,但正如你所看到的......它看起来很可怕。我怎么能这么聪明?

//Set .active to current page link
    if (location.href.indexOf("#2") != -1) {
        $("#menu li:nth-child(1) a ").addClass("active");
    }
    if (location.href.indexOf("#3") != -1) {
        $("#menu li:nth-child(2) a ").addClass("active");
    }
    if (location.href.indexOf("#4") != -1) {
        $("#menu li:nth-child(3) a ").addClass("active");
    }
    if (location.href.indexOf("#5") != -1) {
        $("#menu li:nth-child(4) a ").addClass("active");
    }
    if (location.href.indexOf("#6") != -1) {
        $("#menu li:nth-child(5) a ").addClass("active");
    }

提前谢谢你......

2 个答案:

答案 0 :(得分:3)

如下:

$("#menu li:nth-child(" + ( location.hash.slice(1) - 1 ) + ") a ").addClass("active");

答案 1 :(得分:1)

var m = location.href.match(/#(\d+)/);
if (m) {
  var index = parseInt(m[1]) - 1;
  if (index >= 1)
    $("#menu li:nth-child("+index+") a ").addClass("active");
}