gpt4 book ai didi

Jquery 带有 else if 语句的外部链接

转载 作者:行者123 更新时间:2023-12-01 07:51:03 25 4
gpt4 key购买 nike

我有这个工具,它使用本地页面的硬链接(hard link)和相对链接。 (我没有构建它)我现在需要对外部链接进行分类。尝试过这个,但它陷入了“else if”级别。我究竟做错了什么?如果没有“else if”,它会错误地将某些本地链接标记为外部链接,但有了它,什么也不会发生。

jQuery(document).ready(function() {
var comp = new RegExp(location.host);
jQuery('a').each(function(){
if(comp.test(jQuery(this).attr('href'))) {
jQuery(this).addClass('local');
}
else if(jQuery(this)('a[href$="ABC"]')) {
jQuery(this).addClass('local2');
}
else {
jQuery(this).addClass('external');
}
});

最佳答案

您现有的代码无效,应显示控制台错误,因为以下不是有效的表达式:

jQuery(this)('a[href$="ABC"]')

由于您通常只需要识别外部链接,并且任何内部链接都被视为相同(绝对相对),我有这个 jQuery 选择器,它将匹配所有可能的外部链接(包括电子邮件和文件链接等):

'a[href*="://"]:not(a[href^="' + window.location.protocol + '//' + window.location.hostname + '"]),a[href^="mailto:"]'

JSFiddle: http://jsfiddle.net/TrueBlueAussie/qxn8L86a/10/

简化版本(如果您的网站没有绝对本地链接):

$('a[href*="://"],a[href^="mailto:"]').addClass("external");

JSFiddle: http://jsfiddle.net/TrueBlueAussie/qxn8L86a/8/

要将类添加到本地链接,您只需排除外部链接即可:

例如

$('a').not($('a[href*="://"],a[href^="mailto:"]').addClass("external")).addClass("local");

JSFiddle: http://jsfiddle.net/TrueBlueAussie/qxn8L86a/9/

引用(我的问题):RegEx expression or jQuery selector to NOT match "external" links in href

关于Jquery 带有 else if 语句的外部链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30057849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com