我整个下午一直在努力,没有运气。我需要做的是获取链接的href=""
值并将其存储在新变量或新属性中(在a
内),但已删除http://
预先。这将保持href
值相同,以便它仍然指向链接,但我也有一个没有http://的版本。
到目前为止,这是我尝试过的代码:
$("a[href]").each(function() {
var link = $(this).replace('http://', '');
});
我认为这是正确的,但我不是很擅长jQuery或JS,所以我真的很感激有人可以完成它/从头开始:)
最终,我希望能够使用a
将不带http://的链接放入a:before
的伪元素中。
我也有jsfiddle。
非常感谢任何帮助我的人。
答案 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);
答案 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>