首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从锚点(a)标签获取本地href值

从锚点(a)标签获取本地href值
EN

Stack Overflow用户
提问于 2013-03-16 02:39:24
回答 6查看 353.3K关注 0票数 163

我有一个锚标记,它有一个本地href值,还有一个JavaScript函数,它使用href值,但将它定向到与正常情况略有不同的位置。标记看起来像这样

代码语言:javascript
复制
<a onclick="return follow(this);" href="sec/IF00.html"></a>

和一个看起来像这样的JavaScript函数

代码语言:javascript
复制
baseURL = 'http://www.someotherdomain.com/';
function follow(item) {
    location.href = baseURL + item.href;
}

我本以为item.href只会返回一个短字符串"sec/IF00.html",但它返回的却是完整的href,"http://www.thecurrentdomain.com/sec/IF00.html"。有没有办法只提取锚定<a>标记中的短href ?还是会因为自然的超文本标记语言行为而丢失?

我想我可以使用字符串操作来做这件事,但这会变得很棘手,因为我的本地页面实际上可能是"http://www.thecurrentdomain.com/somedir/somepath/sec/IF00.html",并且我的href字段中可能有子目录,也可能没有子目录(例如ex href="page.html"href="sub/page.html"),所以我不能总是删除最后一个斜杠之前的所有内容。

你可能想知道我为什么要这样做,因为这只会让页面变得更干净。如果不可能只获得短的href (就像放在锚<a>标记中的那样),那么我可能只需要在标记中插入一个额外的字段,比如link="sec/IF00.html",但同样,这可能会有点混乱。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-03-16 02:44:20

下面的代码获取锚点指向的完整路径:

代码语言:javascript
复制
document.getElementById("aaa").href; // http://example.com/sec/IF00.html

而下面的一个获取href属性的值:

代码语言:javascript
复制
document.getElementById("aaa").getAttribute("href"); // sec/IF00.html
票数 335
EN

Stack Overflow用户

发布于 2016-06-23 20:47:00

document.getElementById("link").getAttribute("href");如果您有多个<a>标记,例如:

代码语言:javascript
复制
<ul>
  <li>
    <a href="1"></a>
  </li>
  <li>
    <a href="2"></a>
  </li>
  <li>
    <a href="3"></a>
  </li>
</ul>

您可以这样做:使用document.getElementById("link")[0].getAttribute("href");来访问第一个<a>标记数组,或者取决于您设置的条件。

票数 7
EN

Stack Overflow用户

发布于 2020-08-19 15:47:37

在我的例子中,我有一个带有#的href,而target.href会返回给我完整的url。Target.hash替我做了这件事。

代码语言:javascript
复制
$(".test a").on('click', function(e) {
    console.log(e.target.href); // logs https://www.test.com/#test
    console.log(e.target.hash); // logs #test
  });
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15439853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档