2011-04-29 47 views
7

在下面的HTML:a.href属性是否总是以绝对方式返回?

<a id="link" href="page.htm">Page</a> 

我发现document.getElementById("link").href总是返回绝对路径page.htm,而不是因为我已经键入它的相对路径。请参阅http://jsfiddle.net/4HgAW/

我可以保证javascript在每个浏览器中总是返回绝对路径吗?

我问的原因是我抓住http://www....部分来检查链接指向哪个域,我也需要它为内部链接工作。

回答

13

是的,所有相关的浏览器都会返回完全限定的URL。

如果你想获取href属性(在这种情况下,“page.html中”)的原始值,你可以这样做:

anchor.getAttribute('href') 

然而,这似乎并没有在老年工作IE版本(8及以下)。

现场演示:http://jsfiddle.net/simevidas/4HgAW/1/

+2

对于那些使用jQuery:使用'$( '#someAnchor')jQuery的时候也返回原来的'href'属性值ATTR( 'href' 属性)'。要从jQuery元素获取绝对URL,您必须使用'$('#someAnchor')。get()[0] .href'。 – fero 2013-01-16 10:54:21

+2

@fero jQuery为此提供'.prop('href')',所以你不必做'[0] .href'。顺便说一句,你可以直接使用'[0]',即你不需要'.get()'。 – 2013-01-16 18:37:21

+0

我不知道'prop()'。谢谢。但在我的情况下,我需要'get()'从jQuery对象中获取底层DOM对象。只需'[0]'将返回第一个jQuery对象,而不是由'get()'返回的第一个DOM对象。 – fero 2013-01-17 09:59:24

相关问题