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

我有一个锚标记,它有一个本地 href 值,还有一个 JavaScript 函数,它使用 href 值,但是将其指向与通常情况略有不同的位置。标签看起来像

<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 & # x3a;// www.thecurrentdomain.com/sec/IF00.html”。有没有一种方法,我可以拉出只是短 href 放在锚 <a>标签?或者我会因为自然的 HTML 行为而失去它?

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

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

422732 次浏览

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

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

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

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

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

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

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>标记的第一个数组,或者取决于您创建的条件。

这个代码对我来说可以获得文档的所有链接

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

在我的例子中,我有一个带 # 和 target.href 的 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
});