-1

如何在 href 属性之前添加文本?

例子:

<a href="/page/subpage">Link!</a>

至:

<a href="http://www.example.com/page/subpage">Link!</a>

我试过这个,它不起作用:

$('http://www.example.com').insertBefore('a[href=]');
4

2 回答 2

3

您可以使用回调函数attr

$('a[href]').attr('href', function(index, href) {
    if (href.indexOf('http') === 0) {
        return href;
    } else {
        return 'http://www.example.com' + href;
    }
});

更神秘的方法是使用<base>标签

$('<base href="http://www.example.com/">').appendTo('body');

或者只是将其放入您的 HTML 中:

<base href="http://www.example.com/">

它将强制所有相对 URL 相对于该 URL 进行解析。

于 2013-05-24T16:45:32.733 回答
2

只需更改 href 属性:

$('a:not([href*="//"])').attr(function(_, href){
    return "http://www.example.com" + href;
});
于 2013-05-24T16:44:34.623 回答