有没有一种方法,可以在没有使用jQuery的情况下,从"a"标签中获取href属性的字符串值?
我有一个字符串,内容如下-
<a href="www.something">
。
如何将href属性的值存储到变量中?<a href="www.something">
。
如何将href属性的值存储到变量中?我有一个字符串,内容如下(例如) -
<a href="www.something">
如果它实际上是一个字符串,形式如下:
var s = '<a href="www.something">';
.match()
方法的正则表达式:var href = s.match(/href="([^"]*)/)[1];
// href is now www.something
var str = '<a href="www.something">';
var div = document.createElement('div');
div.innerHTML = str + "</a>"; // Make it a complete tag
var link = div.firstChild.getAttribute("href");
href
。var link = theElement.href;
// or
var link = theElement.getAttribute("href");
通过getAttribute
获取它会返回实际属性的值,而不是完全合格的版本,而href
反映属性获取完全合格的版本(例如,相对链接被扩展)。
获取元素的引用是一个广泛的主题。如果它有一个id
,您可以使用getElementById
。或者,如果您正在响应事件,并且事件发生在您想要的元素附近,您可以使用各种DOM属性和方法进行导航。使用许多现代浏览器,您可以使用CSS选择器和querySelector
(查找一个元素)或querySelectorAll
(列表)。
例如,这将为您提供页面上第一个具有类"foo"
的链接的href
:
console.log(document.querySelector("a.foo").href);
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Getting the Link</title>
</head>
<body>
<a id="theLink" href="/relative/link">Link</a>
<script>
(function() {
var theLink = document.getElementById("theLink");
display("<code>href</code> property: " + theLink.href);
display("<code>getAttribute('href')</code>: " +
theLink.getAttribute("href"));
function display(msg) {
var p = document.createElement('p');
p.innerHTML = String(msg);
document.body.appendChild(p);
}
})();
</script>
</body>
</html>
<a/>
元素,并记录它们的href
值(如果有的话):var anchors = document.getElementsByTagName('a');
var i, len = anchors.length;
for( i = 0; i < len; i++ ) {
console.log(anchors[i].getAttribute('href'));
}
var href = a.href;
。 - Denys Séguret