有没有办法,如何在没有jQuery的情况下从"a"标签中获取href属性的字符串值?我有(例如)这个内容的字符串 - <a href="www.something">.
如何获得变量的href属性值?
nnn*_*nnn 10
我有字符串(例如)这个内容 -
<a href="www.something">
如果它实际上是一个字符串,如下所示:
var s = '<a href="www.something">';
Run Code Online (Sandbox Code Playgroud)
然后你可以使用与正则表达式.match()的方法:
var href = s.match(/href="([^"]*)/)[1];
// href is now www.something
Run Code Online (Sandbox Code Playgroud)
如果它是你网页上的一个元素,那么看看TJ Crowder的答案(我不需要在这里复制这些信息).
如果你真的把它作为一个字符串,那么请参考nnnnnn的答案.
或者,如果您在浏览器环境中:
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");
Run Code Online (Sandbox Code Playgroud)
如果通过该标记创建的页面上有实际元素,则:
如果你有一个元素的引用,你可以href像这样得到它:
var link = theElement.href;
// or
var link = theElement.getAttribute("href");
Run Code Online (Sandbox Code Playgroud)
获取它通过getAttribute返回实际属性的值而不是完全限定版本,并且href反射属性获得完全限定版本(例如,相对链接被扩展).
获取元素的引用是一个广泛的主题.如果它有id,你可以使用getElementById.或者,如果您正在响应事件并且事件发生在您想要的元素附近,则可以使用各种DOM属性和方法导航到该事件.对于许多现代浏览器,您可以使用CSS选择器和querySelector(找到一个元素)或querySelectorAll(列表).
例如,这为您提供了href具有该类的页面上的第一个链接"foo":
console.log(document.querySelector("a.foo").href);
Run Code Online (Sandbox Code Playgroud)
<!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>
Run Code Online (Sandbox Code Playgroud)