javascript - 如何通过 className 从网站获取所有链接、拆分网站名称并存储在数组中
问题描述
我正在尝试从 Gmail 中获取所有链接并将它们存储在一个数组中。我试图让所有的电子邮件都这样存储 -
function gmailGetAllLinks(){
var classname = document.getElementsByClassName('AO');
var array1 = [];
for(i=0;i<classname.length;i++){
var str = classname[i].getElementsByTagName('a')[0].href;
var res = str.split("?");
array1.push(res[0]);
}
window.alert(array1)
warningPopup()
}
当我尝试将数组打印出来时,phishingWebsites.append = array1;
它只显示为空,而 dowindow.alert
只显示第一个链接。
解决方案
querySelectorAll('.AO a')
使用它来定位所有这些锚点更简单。
然后您可以将该集合转换为数组并用于Array#map()
获取结果
function gmailGetAllLinks(){
const links = Array.from(document.querySelectorAll('.AO a')).map(link => {
const url = new URL(link.href);
url.search = '';
return url.toString();
})
console.log(links)
}
gmailGetAllLinks()
.AO{ padding: 1em; border:2px solid #ccc; margin: 1em}
a{display: block; margin-bottom:1em}
<div class="AO">
<a href="https://google.com?q=foo">Google</a>
<a href="https://samsung.com?q=foo">Samsung</a>
</div>
<div class="AO">
<a href="https://facebook?q=foo">Facebook</a>
<a href="https://wikipedia.com?q=foo">Wikipedia</a>
</div>
推荐阅读
- c++ - 创建一个可以在类型和变量上调用的类型特征
- asp.net - Web API 项目中的 JWT 令牌
- reactjs - CK Editor无法设置工具栏位置(反应js)
- ruby-on-rails - 如何设置不记名令牌参数以使用 Rswag UI 测试 Rails API
- delphi - Delphi XE8 idHttp Erromessage 文本编码错误
- go - Go2 从一种类型映射到另一种类型
- mysql - INFORMATION_SCHEMA.INNODB_BUFFER_PAGE 和 INFORMATION_SCHEMA.TABLES 中不同的数据大小
- r - R caret - 按组应用居中
- r - 如何有效地将 rbinom 函数应用于数据框中的每一行?
- javascript - 如何正确处理 React Native Navigation 中的模糊和焦点?