В настоящее время я пытаюсь создать навигационное меню, в котором к якорям применяется активный класс с hrefs, соответствующими текущему URL, поэтому я могу стилизовать этот якорь таким образом, чтобы он выделялся среди остальных элементов. меню.
Это моя наценка:
<div id="sidebar">
<h2>Navigation menu</h2>
<h2 class="subnav"><a href="menu1/menu_item1">Menu item 1</a></h2>
<h2 class="subnav"><a href="menu1/menu_item2">Menu item 2</a></h2>
<h2 class="subnav"><a href="menu1/menu_item3">Menu item 3</a></h2>
<h2 class="subnav"><a href="menu1/menu_item4">Menu item 4</a></h2>
<h2 class="subnav"><a href="menu1/menu_item5">Menu item 5</a></h2>
</div>
Это jQuery:
jQuery(function($) {
// get the current url
var path = location.pathname.substring(1);
// defining the top subnav anchor
var $top_item = $('#sidebar h2:nth-child(2) a');
// defining all subnav anchors
var $all_items = $('#sidebar h2.subnav a');
// defining the anchors with a href that matches the current url
var $selected_item = $('#sidebar h2 a[@href$="' + path + '"]');
// setting the selected menu item'class as active
$selected_item.addClass('active');
// THIS IS WHERE I THINK THE ERROR IS
// if none of the h2.subnav's has a url that matches
// the current location then assume that it's the top one that's active:
if ($all_items("href") !== path) $top_item.addClass('active');
});
Я применяю активный класс с jQuery, он работает нормально, пока есть соответствие между href якоря и URL местоположения. Если URL не совпадает ни с одним из якорей, я хочу, чтобы активный класс был применен к $ top_item. Эта часть моего jQuery не работает.
Я не вижу, в чем ошибка, но опять же, я чем-то вроде Javascript / jQuery n00b. Любая помощь будет оценена.