我如何让jQuery(最好)脚本遍历每个<a>
标记并找到任何不以
http://www.example.com/
并将src属性更改为
http://www.example.com/outbound/?verifyAge=0&dest='+encodeURIComponent(original_src)
并申请rel="external" target="_blank"
?
答案 0 :(得分:2)
Here是概念的快速证明:
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
开头的任何http
元素(您需要expand that conditional logic为自己的{{3}}需要,以及处理任何必须逃脱URL中的斜杠或任何类似的问题),抓住它作为jQuery对象的引用(我不记得this
是否已经是一个jQuery对象,如果是,则可以省略该部分),修改其href
属性并添加target
属性。
答案 1 :(得分:0)
我认为这样的事情会起作用。
$('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));
});
有一个插件可以在元素上进行正则表达式匹配,但使用正则表达式对我来说似乎有些过分。