无论如何,如果没有jQuery,如何从“ a”标签中href属性的字符串值中获取?我有包含(例如)此内容的字符串-<a href="www.something">
。
如何获取href属性的值到变量?
我有(例如)此内容的字符串-
<a href="www.something">
如果实际上是如下所示的字符串:
var s = '<a href="www.something">';
然后您可以将正则表达式与.match()
method一起使用:
.match()
如果它是您页面上的一个元素,请查看var href = s.match(/href="([^"]*)/)[1];
// href is now www.something
(不需要我在此处重复该信息)。
如果您确实有作为字符串,则为T.J. Crowder's answer。
或者,或者,如果您在浏览器环境中:
refer to nnnnnn's answer
如果在通过该标记创建的页面上有实际元素,则:
如果您有对该元素的引用,则可以像这样从其获取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 properties and methods,您可以使用CSS选择器以及a lot of modern browsers(查找一个元素)或querySelector
(列表)。
例如,这为您提供页面上具有类querySelectorAll
的第一个链接的href
:
"foo"
完整示例:console.log(document.querySelector("a.foo").href);
| Live Copy
Live Source
以下代码将遍历所有<!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