【问题标题】:How to get full anchor href? [duplicate]如何获得完整的锚点href? [复制]
【发布时间】:2012-11-07 13:02:18
【问题描述】:

可能重复:
How to get “raw” href contents in JavaScript

有时您会在代码中写入文件的相对路径,因此在代码中,href 属性值可能是somefile.php,但当单击时,锚点当然会将您发送到http://www.yourdomain.com/somefiles.php

现在我的问题是我能否以某种方式获得锚的完整href?

当使用$(anchor).attr("href") 时,您只能获得相对路径。

【问题讨论】:

  • 不是,Matt 在这里给出的工作解决方案与该链接中提供的解决方案不同。

标签: javascript jquery anchor href


【解决方案1】:

你可以使用.prop:

$(anchor).prop("href")

这是example

console.log($("a").prop("href")); //http://fiddle.jshell.net/_display/sth
console.log($("a").attr("href")); //sth

【讨论】:

  • 是的,这成功了,谢谢!
  • 谢谢你!这非常有效。
【解决方案2】:

element.href 会得到整个href

FIDDLE

编辑:

我将在这里引用jQuery's website 的内容:

.prop() 方法应该用于布尔属性/属性 对于 html 中不存在的属性(例如 窗口.位置)。所有其他属性(您可以在 html 中看到的属性) 可以并且应该继续使用 .attr() 方法进行操作。

由于.attr() 获取在属性中键入的实际值,因为它可能使用了本机getAttribute(),因此正确的方法是获取本机javascript 元素,然后使用本机element.href将获得包含域和路径名等的href。

【讨论】:

  • 但我并不想从事件中获取属性。
  • document.getElementById('elementID').href$(anchor)[0].href 会这样做,因为您只需要普通的 JS 对象,而不是 jQuery 对象。
  • 哦,我现在明白了。谢谢,我想我已经变得过于依赖 jQuery 了。
  • @eric.itzhak 这就是为什么它是重复的。当纯 javascript 工作正常时,您要求 jquery 解决方案
  • 不仅如此,href 是一个属性而不是一个属性,所以 prop() 方法并不是真的打算这样使用 -> link,即使它可以作为现在不能保证 prop() 将继续使用 href 属性
【解决方案3】:

你可以使用jQueryprop函数。

为了测试,请在您的控制台中为此页面尝试以下代码;

$("a:eq(6)").prop("href")
$("a:eq(6)").attr("href")

更多信息,您可以搜索 html 属性和属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-03
    • 2014-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-18
    • 1970-01-01
    相关资源
    最近更新 更多