Используя querySelectorAll, чтобы выбрать все href, который соответствует document.URL? - PullRequest
0 голосов
/ 01 сентября 2018

Я пытаюсь добавить класс, когда href соответствует URL документа, используя:

<script>
    currentLinks = document.querySelectorAll('a[href="'+document.URL+'"]')
    currentLinks.forE‌​ach(function(link) {
        link.className += ' current-link'
    });
</script>

Однако я застрял в первой строке, так как он возвращает пустой список узлов.

document.querySelectorAll('a[href="'+document.URL+'"]')

HTML

<li role="presentation" class="current nav-level-5 nav-entry-1 list-position-1  links-open"><a id="perc-navigation-menuitem-nav-level-5-nav-entry-1-list-position-1-113428783" href="/-training-test/menu-test/sub-menu-1/another-level-1/" role="menuitem">Another Level 1</a></li>

Кроме того, для чего используются следующие селекторы (+) в +document.URL+? Почему бы просто не использовать a[href="document.URL"], поскольку он возвращает полный путь?

Ссылка

1 Ответ

0 голосов
/ 01 сентября 2018

Атрибут href в вашем HTML равен /-training-test/menu-test/sub-menu-1/another-level-1/. Но document.URL - это полный URL-адрес, похожий на http://www.yourdomain/com/-training-test/menu-test/sub-menu-1/another-level-1/, поэтому href точно не соответствует этому.

Вместо document.URL, попробуйте использовать location.pathname, который является просто частью пути URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...