我想编写一个脚本来确定链接是内部链接还是外部链接。从我的角度来看,这很简单,所有内部链接都是相对的,因此它们以/开头。所有外部链接都以 http://开头 - 到目前为止一切都很好。但是,我不知道如何对文本以外的任何内容执行 ':contains()' - 如何在属性中搜索字符串?
一旦我能做到这一点,我很乐意自己添加 target _blank,除非您知道更好的方法
最佳答案
您可以使用attribute^=value
查找以 http
或 /
开头的 href 的语法:
$("a[href^='http']") // external
$("a[href^='/']") // internal
<小时/>
这里有一个更好的解决方案:您可以使用下面的插件代码将 $('a:external')
和 $('a:internal')
选择器添加到 jQuery 。任何以 http://
、https://
或 whatever://
或 //
开头的 URL被认为是外部的。所有其他 URL 均被视为内部 URL。
$.expr[':'].external = function (a) {
var PATTERN_FOR_EXTERNAL_URLS = /^(\w+:)?\/\//;
var href = $(a).attr('href');
return href !== undefined && href.search(PATTERN_FOR_EXTERNAL_URLS) !== -1;
};
$.expr[':'].internal = function (a) {
return $(a).attr('href') !== undefined && !$.expr[':'].external(a);
};
关于jquery - 使用 jQuery 检查链接是内部链接还是外部链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1227631/