<a href='http://example.com'>Goes To Example.com</a>
我想得到这个的href值。此链接将始终位于页面
我通常会这样做:document.getElementsByTagName('a')[5]
。但是,链接的数量总是在变化,所以它根本不可靠。我有没有办法通过文字Goes To Example.com
获得它?
答案 0 :(得分:1)
您可以使用xpath:
document.evaluate(
'/html/body//a[text()='Goes To Example.com']/@href',
document, null, XPathResult.ANY_TYPE, null);
您可以使用XPathResult
迭代结果(iterateNext
类型)。
有关详细信息,请参阅xpath文档:https://developer.mozilla.org/en-US/docs/Web/API/document.evaluate。
答案 1 :(得分:1)
答案 2 :(得分:1)
使用JQuery:contains()选择器。然后,您可以获取属性“href”,如下所示:
$("a:contains(Goes To Example.com)").attr("href");
例如,以下代码段会弹出一个警告,其中包含http://example.com
:
<html>
<head>
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
</head>
<body>
<a href='http://example.com'>Goes To Example.com</a>
<script>
alert($("a:contains(Goes To Example.com)").attr("href"));
</script>
</body>
</html>
答案 3 :(得分:0)
您可以执行document.getElementById并将id提供给a标记。要获取文本,您可以使用innerHTML函数
HTML标记
<a id="test" href='http://example.com'>Goes To Example.com</a>
JS:
document.getElementById("test").innerHTML
如果您只想通过href属性,那么您必须将其循环
var els = document.getElementsByTagName("a");
for (var i = 0, l = els.length; i < l; i++) {
var el = els[i];
if (el.href === 'http://www.example.com/') {
alert(el.innerHTML);
}
}
答案 4 :(得分:0)
你可以这样做:
var links = document.getElementsByTagName('a');
var requiredId = "";
for(var i=0; i<links.length; i++){
if(links[i].innerHTML == "Goes To Example.com"){
requiredId = links[i].getAttribute('id');
}
}