У меня есть это регулярное выражение jQuery, которое я получил из другого потока здесь, в stackoverflow. Он добавляет класс css в текущий пункт меню на основе URL-адреса. Это выглядит следующим образом:Измените регулярное выражение, чтобы выделить текущий пункт меню
<script>
$(function() {
// show current menu object highlighted
var url = window.location.pathname,
urlRegExp = new RegExp(url == '/' ? window.location.origin + '/?$' : url.replace(/\/$/, '')); // create regexp to match current url pathname and remove trailing slash if present as it could collide with the link in navigation in case trailing slash wasn't present there
// now grab every link from the navigation
$('nav a').each(function() {
// and test its href against the url pathname regexp
if (urlRegExp.test(this.href)) {
$(this).addClass('current');
}
console.log(url);
console.log($(this).attr('href'));
});
});
</script>
Это прекрасно работает, если путь именно так в HREF ссылки, но я хочу, чтобы это применять также для подстраниц текущего объекта меню. Это моя навигация:
<nav>
<ul>
<li>
<a href="/Admin/Blogs" title="Blog" style="border-left: 1px solid rgba(0,0,0,.15);">Blog</a>
</li><li>
<a href="/Admin/Shows" title="Shows">Shows</a>
</li><li>
<a href="/Admin/StoreItems" title="Store">Store</a>
</li><li>
<a href="/Admin/Pages" title="Pages">Pages</a>
</li><li>
<a href="/Admin/Menu" title="Menu">Menu</a>
</li><li>
<a href="/Admin/SocialMedia" title="Social media">Social media</a>
</li><li>
<a href="/Admin/ImageGallery" title="Image gallery">Image gallery</a>
</li><li>
<a href="/Admin/MailSettings" title="Mail settings">Mail settings</a>
</li><li>
<a href="/Admin/PageSettings" title="Site configuration">Site configuration</a>
</li>
</ul>
</nav>
Допустим, что путь/Admin/Блоги/Создать, я хочу, чтобы пункт меню Блог будет подсвечен. На данный момент это не так. Также, если я перехожу к/Admin (то есть к домашней странице), на данный момент выбираются все пункты меню, что нежелательно.
Мне действительно нужно время, чтобы научиться регулярному правилу, но я немного спешу с этим (школьный проект), поэтому, если кто-нибудь может мне помочь, это будет очень признательно.
школьный проект? Для этого случая вы можете использовать подстроку или строковое соответствие вместо регулярного выражения. или их комбинацию для упрощения регрессии exp. Символ Start^будет полезен в вашем случае. – Winfred
Спасибо за подсказку! Я постараюсь это сделать. –