1

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

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

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

我认为这是正确的,但我不太擅长 jQuery 或 JS,所以如果有人能完成它/从头开始,我将非常感激 :)

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

我也有一个jsfiddle

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

4

3 回答 3

4

只需使用this.href而不是$(this).

如果你想处理httpshttp,你可以使用正则表达式:

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/

于 2012-10-31T18:52:56.857 回答
3

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

$("a[href]").each(function() {
        var link = $(this).attr('href').replace('http://', '');
    });
于 2012-10-31T18:50:22.517 回答
1

简单我会这样做:

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

    })
    </script>

演示

于 2012-10-31T19:00:39.550 回答