我将如何让一个 jQuery(最好是)脚本遍历每个<a>
标签并找到任何不以开头的标签
http://www.example.com/
并将 src 属性更改为
http://www.example.com/outbound/?verifyAge=0&dest='+encodeURIComponent(original_src)
并申请rel="external" target="_blank"
?
我将如何让一个 jQuery(最好是)脚本遍历每个<a>
标签并找到任何不以开头的标签
http://www.example.com/
并将 src 属性更改为
http://www.example.com/outbound/?verifyAge=0&dest='+encodeURIComponent(original_src)
并申请rel="external" target="_blank"
?
这是概念的快速证明:
HTML:
<a href="http://www.google.com">Google</a>
<a href="test.html">Test</a>
JavaScript:
$('a').not('[href^="http"]').each(function () {
var element = $(this);
element.attr('href', element.attr('href') + '?foo=baz');
element.attr('target', '_blank');
});
本质上,JavaScript 所做的是查找任何不以开头的a
元素(您需要根据自己的需要扩展该条件逻辑,以及处理必须转义 URL 中的斜杠或类似的任何问题),获取对它的引用作为一个 jQuery 对象(我不记得是否已经是一个 jQuery 对象,如果是你可以省略那部分),修改它的属性并添加一个属性。 http
this
href
target
我认为这样的事情会奏效。
$('a')
.filter( function() { return $(this).attr('href').indexOf('www.example.com') !== 0; })
.each( function(i, el) {
var curHref = el.attr('href');
el.attr('rel', 'external');
el.attr('target', '_blank');
el.attr('href', 'http://www.example.com/outbound/verifyAge=0&dest='+encodeURIComponent(curHref));
});
有一个插件可以对元素进行正则表达式匹配,但是对我来说使用正则表达式似乎有点矫枉过正。