$("a").href 始终返回绝对 URL,即使 href 属性是相对的

rcg*_*e23 2 html javascript jquery

我正在尝试重写我页面上的一些链接,以便将它们设为绝对链接,但前提是它们还不是绝对链接。

我正在使用 jQuery,并执行以下操作:

$("a").each(function() {
    if (!this.href.startsWith("http")) {
        this.href = "http://blah.com" + this.href
    }
});
Run Code Online (Sandbox Code Playgroud)

出乎意料的是(对我而言)即使页面源显示 URL 是相对的 ( )也this.href总是返回绝对 URL http://blah.com/somePath( /somePath)。

如何获得 ? 的“真实”值(如页面源代码中所示)href

我只在 Firefox 19 中尝试过这个。

mar*_*mes 5

这是因为 Anchor 元素将始终解析整个 URL。您可以使用 jQuery 函数attr来获取属性的内容,就像这样

$('a').attr('href');
Run Code Online (Sandbox Code Playgroud)