Добавить активный класс навигации на основе URL для аналогичного URL - PullRequest
0 голосов
/ 04 апреля 2020

Я пытаюсь добавить активный класс в навигацию. Я использовал эту статью. Добавить активный класс навигации на основе URL

$(function(){
    var current = location.pathname;
    $('#nav li a').each(function(){
        var $this = $(this);
        // if the current path is like this link, make it active
        if($this.attr('href').indexOf(current) !== -1){
            $this.addClass('active');
        }
    })
})

Работает хорошо. Но моя проблема в этом случае.

/blog, /blogAds

Если url равен /blog, активный класс добавлен к обоим элементам навигации. Есть ли какое-то решение для этого?

1 Ответ

1 голос
/ 04 апреля 2020

Попробуйте это

if( new RegExp(location.pathname + "$").test( $this.attr('href') ) ) {
    $this.addClass('active');
}

Протестировано с:

new RegExp('\/blog$').test('/blogAds'); // returns false
new RegExp('\/blog$').test('/blog'); // returns true

Ссылка

...