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

2022-08-30 01:43:23

我有一个具有本地 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;
}

我预计这只会返回一小串“sec/IF00.html”,但它会返回完整的href,“http://www.thecurrentdomain.com/sec/IF00.html”。有没有办法让我只拉出放在锚标签中的短href?还是我通过自然的HTML行为失去了它?item.href<a>

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

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


答案 1

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

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

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

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

答案 2

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>