使用querySelectorAll选择与document.URL匹配的所有href?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用querySelectorAll选择与document.URL匹配的所有href?相关的知识,希望对你有一定的参考价值。

当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"],因为它返回完整的路径?

Link

答案

HTML中的href属性是/-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的路径名部分。

以上是关于使用querySelectorAll选择与document.URL匹配的所有href?的主要内容,如果未能解决你的问题,请参考以下文章

querySelectorAll( ) 方法

原生DOM选择器querySelector和querySelectorAll

前端强大的javascript原生选择器querySelector 和 querySelectorAll

querySelectorAll 不起作用

后代未正确选择的 queryselectorAll

js高级选择器querySelector和querySelectorAll