从anchor(a)标签获取本地href值

我有一个具有本地href值的定位标记,以及一个使用href值的JavaScript函数,但将它指向与通常情况不同的地方。 标签看起来像

<a onclick="return follow(this);" href="sec/IF00.html"></a> 

和一个看起来像的JavaScript函数

 baseURL = 'http://www.someotherdomain.com/'; function follow(item) { location.href = baseURL + item.href; } 

我期望item.href只会返回一个简短的“sec / IF00.html”string,但它会返回完整的href,“http://www.thecurrentdomain.com/sec/IF00.html”。 有没有一种方法,我可以拉出只是简短的href放在锚<a>标签? 还是我自然HTML行为失去了?

我想我可以使用string操作来做到这一点,但它会变得棘手,因为我的本地页面可能实际上是“http://www.thecurrentdomain.com/somedir/somepath/sec/IF00.html”,我的href字段可能或者可能没有一个子目录(因为href="page.html"href="sub/page.html" ),所以我不能总是删除最后一个斜杠之前的所有东西。

你可能想知道我为什么要这样做,这是因为它会使页面更清洁。 如果不可能获得短href(如放在<a>标签中),那么我可能只需要在标签中插入一个额外的字段,比如link="sec/IF00.html" ,但是再一次,那会有点混乱。

下面的代码获取完整的path,其中的锚点:

 document.getElementById("aaa").href; // http://example.com/sec/IF00.html 

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

 document.getElementById("aaa").getAttribute("href"); // sec/IF00.html 

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

 <ul> <li> <a href="1"></a> </li> <li> <a href="2"></a> </li> <li> <a href="3"></a> </li> </ul> 

href属性设置或返回链接的href属性的值。

  var hello = domains[i].getElementsByTagName('a')[0].getAttribute('href'); var url="https://www.google.com/"; console.log( url+hello); 
 document.getElementById("aaa").href; //for example: http://example.com/sec/IF00.html 

很遗憾看到有多less人给出了这样不舒服和不方便的答案。 以下是检索href的最简单方法:

 $("a").click(function(e){ var hash = this.hash; alert(hash); }); 

全部在一行代码中完成。 这是灵活的,不像以前的答案那样依赖获取elementId。