获取href值,存储在变量中并删除http://

时间:2012-10-31 18:45:44

标签: jquery string variables href

我整个下午一直在努力,没有运气。我需要做的是获取链接的href=""值并将其存储在新变量或新属性中(在a内),但已删除http://预先。这将保持href值相同,以便它仍然指向链接,但我也有一个没有http://的版本。

到目前为止,这是我尝试过的代码:

$("a[href]").each(function() {
    var link = $(this).replace('http://', '');
});

我认为这是正确的,但我不是很擅长jQuery或JS,所以我真的很感激有人可以完成它/从头开始:)

最终,我希望能够使用a将不带http://的链接放入a:before的伪元素中。

我也有jsfiddle

非常感谢任何帮助我的人。

3 个答案:

答案 0 :(得分:4)

只需使用this.href代替$(this)

如果您想要处理https以及http,可以使用正则表达式:

var link = this.href.replace(/^https?:\/\//, '');

此外,由于您要在:after伪元素中显示此值,请将link存储在数据属性中。这样,您可以直接从CSS中获取值:

$("a[href]").each(function() {
    var link = this.href.replace(/^https?:\/\//, '');

    $(this).attr('data-href', link);
});

然后将您的CSS更改为:

a:before {
    content: 'This link goes to ' attr(data-href);

演示:http://jsfiddle.net/dSHH4/1/

答案 1 :(得分:3)

[href]没有选择href属性,它选择具有此属性的元素,因此您必须调用属性手册:

$("a[href]").each(function() {
        var link = $(this).attr('href').replace('http://', '');
    });

答案 2 :(得分:1)

简单我会这样做:

<script type="text/javascript">
    $(function() {
        var withhref = $("a").attr("href"); alert(withhref);
        var withouthref = $("a").attr("href").replace("http://","");  alert(withouthref);

    })
    </script>

DEMO