Установка класса CSS для href = "/" в JQuery - PullRequest
2 голосов
/ 11 ноября 2010

Я пытаюсь установить класс CSS "selected" в моих ссылках на боковой панели. Когда я дома, например root url / У меня проблемы с настройкой этого класса. Поскольку все URL-адреса заканчиваются на /.

Здесь приведен соответствующий код:

$(document).ready(function(){
    var path = location.pathname.substring();
    $('nav#sitenavigation a[href$="' + path + '"]').attr('class', 'selected');
});

Как мне установить "selected" ТОЛЬКО в a-тег, содержащий: href = "/", а не, например, href = "/ events /"?

Ответы [ 2 ]

3 голосов
/ 11 ноября 2010

Использовать только = ( атрибут равен ) вместо $= ( атрибут заканчивается ), например:

$(document).ready(function(){
  var path = location.pathname.substring();
  $('nav#sitenavigation a[href="' + path + '"]').attr('class', 'selected');
});
2 голосов
/ 11 ноября 2010
$('nav#sitenavigation a[href=/]').attr('class', 'selected');

Это должно сделать это - вы выбираете только ссылки с символом "/".Единственная разница - = vs $ =.Чтобы точно соответствовать вашему коду ...

$('nav#sitenavigation a[href="' + path + '"]').attr('class', 'selected'); 

На странице селекторов jQuery объясняется, как работают все различные операторы сравнения: http://api.jquery.com/category/selectors/

Последнее замечание - этот код лишит все остальные классыссылку и замените их выбранными.Чтобы сохранить любые существующие классы, используйте addClass () примерно так:

$('nav#sitenavigation a[href="' + path + '"]').addClass('selected'); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...