如何使用querySelector来查找特定类的所有外部链接。

问题描述 投票:0回答:1

我想找出特定类(.post-inner)中的所有外部链接(不指向当前域名的链接),但我找不到如何做到这一点,我认为可以用querySelector来实现(我没有使用jQuery)。

function linkopener(a) {
var c = document.links;
for (var i = 0; i < c.length; i++) {
    if (c[i].hostname != window.location.hostname && c[i].protocol != 'tel:' && c[i].protocol != 'mailto:' && c[i].querySelector('.post-inner')) {
        c[i].target = '_blank';
        c[i].rel = 'noopener noreferrer';
        c[i].title = '\u00f6ffnet in neuem Fenster - ' + c[i].title;
        c[i].className += ' external-link'
     }
}

};

javascript
1个回答
1
投票

如果你的内部链接是相对的(不以"http:/yourdomain.com...")您可以使用 querySelector 来查找所有具有这样的协议指定符的标签。

var aTags = document.body.querySelectorAll('.post-inner a[href*="://"]');

如果标签有一个包含":/"的 "href "属性,并且在一个类为 "post-inner "的元素中,它就会被找到。


0
投票

尝试使用

c[i].classList.contains('post-inner')

而是


0
投票

我想你可以做这样的事情。

$(".post-inner>a[href^="http:"] ,.post-inner>a[href^="tel:"], ...")
© www.soinside.com 2019 - 2024. All rights reserved.