从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。