javascript - 如何抓取元素的所有子元素
问题描述
我正在抓取一些 HTML 代码,如下所示,但问题是.group
我的 HTML 代码中正好有 5 个元素,每个元素都由 10.name-top
和.name-bottom elements
. 查询选择器只返回第一个孩子......用类抓取所有元素.name
并将所有这些项目推入数组的可能方法是什么?
var groups = document.getElementsByClassName('group');
var matches = [];
var arr = Array.from(groups).map(i => {
const league = i.querySelector('.group-header').innerText;
const name = i.querySelector('.name.top').innerText + " - " + i.querySelector('.name.bottom').innerText;
matches.push({name : name, league : league});
});
解决方案
使用 document.querySelectorAll 选择所有组
var groups = document.querySelectorAll('.group');
var matches = [];
var arr = Array.from(groups).map(i => {
const league = i.querySelector('.group-header').innerText;
const name = i.querySelector('.name.top').innerText + " - " + i.querySelector('.name.bottom').innerText;
matches.push({name : name, league : league});
});
推荐阅读
- bootstrap-4 - 如何使用 CSS 从页脚中删除额外的填充?
- python - Python 保存已排序数据的最有效方法
- sql - 访问 - 基于主键 (PK) 将左连接添加到返回值
- javascript - 这个高阶函数在 JavaScript 中是如何工作的?
- windows - 如何更改 Eclipse 标题栏的颜色?
- google-bigquery - BigQuery IF 条件然后将值附加到数组中 - 标准 SQL
- openstreetmap - OpenStreeMap:导出一个地方的边界
- eclipse - 在阶段 (JavaFx) (Eclipse) 之间传递值
- angular - 在 IONIC 中创建新应用程序时如何解决代理错误?
- sql - 如何在 Laravel 中将所有具有共同标题的行组合在一起