Добавить класс для ребенка, который соответствует URL - PullRequest
2 голосов
/ 10 февраля 2011

Я создал веб-сайт с одной страницей, где меню не показывает активную / текущую ссылку, когда пользователи приходят из 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 ]

3 голосов
/ 10 февраля 2011

Как насчет чего-то вроде:

$("#menu li:nth-child(" + ( location.hash.slice(1) - 1 ) + ") a ").addClass("active");
1 голос
/ 10 февраля 2011
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");
}
...