1

我将如何让一个 jQuery(最好是)脚本遍历每个<a>标签并找到任何不以开头的标签

http://www.example.com/ 

并将 src 属性更改为

http://www.example.com/outbound/?verifyAge=0&dest='+encodeURIComponent(original_src) 

并申请rel="external" target="_blank"

4

2 回答 2

2

是概念的快速证明:

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 对象,如果是你可以省略那部分),修改它的属性并添加一个属性。 httpthishreftarget

于 2012-04-19T19:18:53.587 回答
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));             
    }​);

​有一个插件可以对元素进行正则表达式匹配,但是对我来说使用正则表达式似乎有点矫枉过正。

于 2012-04-19T19:22:49.717 回答