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

时间:2018-08-31 21:42:19

标签: javascript jquery jquery-selectors

当我使用以下方法与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

1 个答案:

答案 0 :(得分:0)

HTML中的href属性为/-training-test/menu-test/sub-menu-1/another-level-1/。但是document.URL是标准网址,类似于http://www.yourdomain/com/-training-test/menu-test/sub-menu-1/another-level-1/,因此href与之完全不符。

尝试使用document.URL代替location.pathname,它只是URL的路径名部分。