使用jQuery检查一个链接是内部的还是外部的

前端之家收集整理的这篇文章主要介绍了使用jQuery检查一个链接是内部的还是外部的前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想编写一个可以确定链接是内部还是外部的脚本.这从我的角度来说很简单,所有内部链接都是相对的,所以他们以a开头.所有外部链接从http://开始,一切都很好.但是,我无法弄清楚如何在除文本之外的任何内容中使用’:contains()’ – 如何在属性搜索字符串?

一旦我可以做到这一点,我很高兴自己添加目标_blank,除非你知道一个更好的方法来做到这一点

@R_301_323@

您可以使用 attribute^=value语法来查找以http或/开头的href:
$("a[href^='http']") // external

$("a[href^='/']") // internal

这是一个更好的解决方案:您可以使用下面的插件代码向jQuery添加$(‘a:external’)和$(‘a:internal’)选择器.任何从http://,https://或任何://开始的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相关文章