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


121

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

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

和一个看起来像

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 ?还是因为自然的HTML行为而失去了它?

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

您可能想知道为什么我要这样做,这是因为它会使页面更整洁。如果不可能只获得简短的href(如定位<a>标记中所示),那么我可能只需在标记中插入一个额外的字段,例如link="sec/IF00.html",但同样会有点麻烦。

Answers:


255

以下代码获取完整路径,锚点指向:

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

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

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

6

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>

您可以这样操作:document.getElementById("link")[0].getAttribute("href");访问<a>标签的第一个数组,或取决于您的条件。


2

此代码对我有用,以获得文档的所有链接

var links=document.getElementsByTagName('a'), hrefs = [];
for (var i = 0; i<links.length; i++)
{   
    hrefs.push(links[i].href);
}

0

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

  var hello = domains[i].getElementsByTagName('a')[0].getAttribute('href');
    var url="https://www.google.com/";
    console.log( url+hello);

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

2
行动党已经尝试过了,但没有给他期望的结果。
Bobort '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.