有时您会在代码中编写相对路径来引用文件,因此在代码中,href属性值可能是somefile.php
,但当单击时,锚点会将您发送到http://www.yourdomain.com/somefiles.php
。
现在我的问题是,我是否可以以某种方式获取锚点的完整href?
使用$(anchor).attr("href")
时,您只会得到相对路径。
有时您会在代码中编写相对路径来引用文件,因此在代码中,href属性值可能是somefile.php
,但当单击时,锚点会将您发送到http://www.yourdomain.com/somefiles.php
。
现在我的问题是,我是否可以以某种方式获取锚点的完整href?
使用$(anchor).attr("href")
时,您只会得到相对路径。
element.href
可以获取整个 href。
编辑:
我会引用来自 jQuery 网站的一段话:
对于布尔属性/属性和在 html 中不存在的属性(如 window.location)应使用 .prop() 方法。所有其他属性(可以在 html 中看到的属性)都可以和应该继续使用 .attr() 方法进行操作。
由于 .attr()
获取的是属性中实际键入的值,因为它可能使用了原生的 getAttribute()
,所以正确的方法是获取原生 JavaScript 元素,然后使用原生的 element.href
,这将获取包括域名、路径名等在内的 href。
document.getElementById('elementID').href
或者 $(anchor)[0].href
就可以实现此功能,因为你只需要纯JS对象,而不是jQuery对象。 - adeneohref
是一个属性而不是一个属性,所以prop()
方法并不真正打算以这种方式使用 -> link,即使它现在可以工作,也不能保证prop()将继续与href 属性一起工作! - adeneo你可以使用jQuery的prop
函数。
为了测试,请在控制台中尝试以下代码,针对此页面;
$("a:eq(6)").prop("href")
$("a:eq(6)").attr("href")
如果需要更多信息,您可以搜索HTML属性和属性。