2011-10-13 2 views
4

У меня есть следующий код, который пытается найти ссылку, которая соответствует текущему URL: $item = $('ul#ui-ajax-tabs li a').attr('href', $(location).attr('pathname'));, но вместо этого он изменяет все ссылки на текущий URL: PJQuery найти ссылку, которая соответствует текущей странице

Может кто-нибудь мне помочь почини это. Cheers

ответ

11

Используйте этот запрос. Ваш код изменяет все href атрибуты выбранных ссылок, а не возвращать набор ссылок с соответствующим атрибутом href:

$("a[href*='" + location.pathname + "']") 

Селектор [href*=..] возвращает список элементов, href атрибут содержит текущий путь к файлу.

Другой метод возвращает все элементы, у которых href содержит текущий путь. prop() используется вместо attr(), так что относительные URL-адреса также корректно интерпретируются.

$item = $('ul#ui-ajax-tabs li a').filter(function(){ 
    return $(this).prop('href').indexOf(location.pathname) != -1; 
}); 
0

Это потому, что ваш CSS-селектор ul#ui-ajax-tabs li a соответствует нескольким вещам. Попробуйте уточнить свой селектор, например ul#ui-ajax-tabs li:first-child a.

0

Где может быть изменен формат URL в продукции, такой как ASP.NET:/это может работать лучше, если вы игнорируете косую черту URL-адресов.

$('.mdl-navigation').find("a").filter(function() { 
    return this.href.replace(/\/+$/, '') === window.location.href.replace(/\/+$/, ''); 
}).addClass('current-active-page-url'); 
Смежные вопросы