我试图重写我页面上的某些链接,以便让它们绝对,但前提是它们不是绝对的。
我正在使用jQuery,并做这样的事情:
$("a").each(function() {
if (!this.href.startsWith("http")) {
this.href = "http://blah.com" + this.href
}
});
出乎意料地(对我而言)this.href
总是返回绝对网址(http://blah.com/somePath
),即使网页来源显示网址是相对的(/somePath
)。
我怎样才能得到真实的' href
的值(如页面来源中所示)?
我只在Firefox 19中试过这个。
答案 0 :(得分:4)
这是因为Anchor元素将始终解析整个URL。您可以使用jQuery函数attr
来获取属性的内容,如此
$('a').attr('href');
答案 1 :(得分:2)
您需要使用属性值而不是href属性
$("a").each(function() {
var href = $(this).attr('href');
if (!href.startsWith("http")) {
$(this).attr('href', "http://blah.com" + href);
}
});
尝试更简化的版本
$("a:not([href^=http])").attr('href', function (i, href) {
return "http://blah.com" + href
});
演示:Fiddle