Идентификация текущей страницы JavaScript

#javascript

#javascript

Вопрос:

Я написал следующий код для идентификации текущей страницы и соответствующей маркировки ее на панели навигации. Он работает отлично, за исключением первого раза index.php загружается (код находится в конце header.php файл:

  path = location.pathname.split("/"); 
 pathname= "#header_nav li a[href='"   path[(path.length-1)]   "']";
 $(pathname).attr("id","current");
 

есть идеи?

Ответ №1:

Если URL-адрес страницы http://domain / вместо http://domain/index.php вы не будете сопоставлять a-элемент с href=»index.php «.

Как насчет этого?

 var filename = location.pathname.split('/').pop();
var currentHref = filename ||'index.php';
$('#header_nav li a[href="'   currentHref   '"]').prop('id','current');
 

Имейте в виду, что в jQuery 1.6 вы должны ссылаться на атрибут id, используя функцию prop() вместо attr() . Однако я бы предпочел использовать для этого имя класса current .

Комментарии:

1. спасибо, вы действительно были правы. у него не было index.php суффикс. что касается класса и идентификатора, я подумал, что, поскольку существует только одна текущая страница, имело бы смысл использовать идентификатор.

Ответ №2:

Попробуйте поместить свой код внутри .ready() функции jQuery:

 $(document).ready(function() {    
    path = location.pathname.split("/"); 
    pathname= "#header_nav li a[href='"   path[(path.length-1)]   "']";
    $(pathname).attr("id","current");
});