我想编写一个可以确定链接是内部还是外部的脚本.这从我的角度来说很简单,所有内部链接都是相对的,所以他们以a开头.所有外部链接从http://开始,一切都很好.但是,我无法弄清楚如何在除文本之外的任何内容中使用’:contains()’ – 如何在属性中搜索字符串?
@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); };