javascript - 获取 HTML 内容下的 href 列表
问题描述
我有一个json string
包含 HTML 元素的内容。我想要实现的是获取<a>
该字符串中的所有锚标记值。
Json String
"content" : "<p>Reference information</p> <ul> <li><a href="https://myurl.com">My Url</a></li> <li><a
href="https://yoururl.com">Your Url</a></li> </ul>"
这是HTML格式
<p>Reference information</p>
<ul>
<li><a href="https://myurl.com">My Url</a></li>
<li><a href="https://yoururl.com">Your Url</a></li>
</ul>
我已经尝试过这样但无法获得确切的值:
<div id="TestDiv" hidden >
</div>
let anchor = document.getElementById("TestDiv").getElementsByTagName("li");
anchor[0].innerHTML
我得到这个值
<a href="https://myurl.com">My Url</a>
但我想得到https://myurl.com
我尝试的另一种方法已关闭,但仍有问题但不想使用正则表达式:
content.match(/href="([^"]*?)"/);
我怎样才能做到这一点?
解决方案
// Create an element
const el = document.createElement("div");
// set the inner HTML
el.innerHTML = `
<p>Reference information</p>
<ul>
<li><a href="https://myurl.com">My Url</a></li>
<li><a href="https://yoururl.com">Your Url</a></li>
</ul>
`;
// grab all <a> tag
const nodeList = el.querySelectorAll("a");
// convert to array
const nodeArray = [...nodeList];
// map to href
const hrefs = nodeArray.map((a) => a.href); // ["https://myurl.com/", "https://yoururl.com/"]
推荐阅读
- javascript - 在谷歌上设置一个带有动作的计时器
- excel - 在 excel 中从另一个插件启动一个插件
- angular - Angular with Angular Material - MatTable(s) 和多个 MatTab(s)
- html - 从 AWS S3 发送邮件时遇到问题
- python - 在 Mac 上的 pyzo 中保存动画
- python - Python CX_Oracle:如何在另一个查询中使用返回的元组
- asp.net-core - 在 Vue.js 站点上使用带有 HardSource 的 Webpack 意外和神秘的 dotnet 运行“失败”消息
- c# - QR 解码不适用于 ZXing 和 Aforge
- python - 在 pandas 中获取最后一分钟的所有行
- javascript - 确保仅在前一个函数完成运行时才调用 JavaScript 函数