使用querySelectorAll选择与document.URL匹配的所有href?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用querySelectorAll选择与document.URL匹配的所有href?相关的知识,希望对你有一定的参考价值。
当href与文档的URL匹配时,我正在尝试添加一个类:
<script>
currentLinks = document.querySelectorAll('a[href="'+document.URL+'"]')
currentLinks.forEach(function(link) {
link.className += ' current-link'
});
</script>
但是,我停留在第一行,因为它返回一个空节点列表。
document.querySelectorAll('a[href="'+document.URL+'"]')
<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"]
,因为它返回完整的路径?
答案
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?的主要内容,如果未能解决你的问题,请参考以下文章
原生DOM选择器querySelector和querySelectorAll