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

时间:2013-03-15 18:39:24

标签: javascript html 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”,而是返回完整的href,“http://www.thecurrentdomain.com/sec/IF00。 HTML”。有没有一种方法可以拉出锚<a>标签中的短href?或者我通过自然的HTML行为失去了它?

我想我可以使用字符串操作来执行此操作,但它变得棘手,因为我的本地页面实际上可能是“http://www.thecurrentdomain.com/somedir/somepath/sec/IF00.html”,而我的href字段可能包含也可能没有子目录(对于ex href="page.html" vs. href="sub/page.html"),所以我不能总是在最后一个斜杠之前删除所有内容。

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

7 个答案:

答案 0 :(得分:188)

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

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

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

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

答案 1 :(得分:6)

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

&#13;
&#13;
<ul>
  <li>
    <a href="1"></a>
  </li>
  <li>
    <a href="2"></a>
  </li>
  <li>
    <a href="3"></a>
  </li>
</ul>
&#13;
&#13;
&#13;

您可以这样做:document.getElementById("link")[0].getAttribute("href");访问第一个<a>代码数组,或者取决于您所处的条件。

答案 2 :(得分:2)

对于我来说,我有一个带#的href,target.href向我返回了完整的URL。 Target.hash为我完成了工作。

$(".test a").on('click', function(e) {
    console.log(e.target.href); // logs https://www.test.com/#test
    console.log(e.target.hash); // logs #test
  });

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

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

#if defined(CONFIG_SMP)
     sprintf(idle->comm, "%s/%d", INIT_TASK_COMM, cpu);
#endif

答案 5 :(得分:-1)

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

答案 6 :(得分:-14)

伤心地看到有多少人给了这种不舒服,不方便回答。 这是检索href最简单的方法:

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

所有这些只需要一行代码即可完成。这很灵活,不依赖于像以前的答案那样获取elementId。