在以下HTML代码中:
<a id="link" href="page.htm">Page</a>
我发现document.getElementById("link").href
总是返回page.htm
的绝对路径,而不是我输入的相对路径。请参见http://jsfiddle.net/4HgAW/。
我能保证在每个浏览器中javascript都会返回绝对路径吗?
我问这个问题的原因是我正在获取http://www....
部分以检查链接指向哪个域,并且我需要它也适用于内部链接。
在以下HTML代码中:
<a id="link" href="page.htm">Page</a>
我发现document.getElementById("link").href
总是返回page.htm
的绝对路径,而不是我输入的相对路径。请参见http://jsfiddle.net/4HgAW/。
我能保证在每个浏览器中javascript都会返回绝对路径吗?
我问这个问题的原因是我正在获取http://www....
部分以检查链接指向哪个域,并且我需要它也适用于内部链接。
是的,所有相关的浏览器都会返回完全限定的URL。
如果你想获取href
属性的原始值(在本例中为'page.html'),可以这样做:
anchor.getAttribute('href')
然而,在旧版IE(8及以下版本)中似乎无法正常工作。
$('#someAnchor').attr('href')
时,jQuery也会返回原始的href
属性值。要从jQuery元素获取绝对URL,必须使用$('#someAnchor').get()[0].href
。 - fero.prop('href')
来实现这个目的,所以您不必使用[0].href
。另外,您可以直接使用[0]
,即不需要.get()
。 - Šime Vidasprop()
。谢谢。但在我的情况下,我需要使用get()
从 jQuery 对象中获取底层 DOM 对象。只使用[0]
将返回第一个 jQuery 对象,而不是get()
返回的第一个 DOM 对象。 - fero$('.foo')
,则可以通过以下方式获取第一个DOM元素:$('.foo')[0]
。当您想要获取DOM元素的普通(本机)数组时,.get()
才有用。 - Šime Vidas