javascript - querySelector() 只给一个类而不是多个
问题描述
在我的代码中,我试图将所有以 priceList_ 开头的类放入一个数组中以供以后使用。我以前这样做的代码是:var prefix = document.querySelector('[class^="priceList_"]').className;
这段代码有一个问题,那就是它只给出具有该前缀的第一个类,而不是给出一个类数组。有谁知道这个问题的解决方案?
解决方案
您需要使用document.querySelectorAll
,document.querySelector
目的是找到页面上匹配条件的第一个元素。
只是添加
document.querySelectorAll('[class^="priceList_"]').className
将出错,因为返回的对象是节点的 NodeList,而不是单个节点(您可以从中获取类的)。
如果您想获得每个元素类的结构化数组,请执行以下操作
const classes = [...document.querySelectorAll('[class^="priceList_"]')].map(elem => elem.className);
这将分配一个类数组(按页面上 DOM 元素的顺序)。你也可以做
const classes = [];
for (const elem of document.querySelectorAll('[class^="priceList_"]')) {
classes.push(elem.className);
}
console.log('CLASSES', classes);
推荐阅读
- algorithm - 除了二分查找,还有其他算法的运行时间为 O(log n) 吗?
- python - 是否定义了可以删除对象的任何类方法
- node.js - 如何从节点中的 SAM lambda local 访问 SSM Parameter Store
- javascript - Fullcalendar 未显示 Google 日历数据
- azure-devops - Azure DevOps YAML 如果条件
- opencv - 建设项目“INSTALL.vcxproj”——失败
- sql-server - 将 2008 SSIS 包迁移到 2019
- wordpress - 运输选项使我的贝宝无法正常工作
- git - 不一致的 git 子模块远程 url
- c# - 如何从 NEF 或其他 RAW 格式制作字节数组并进行编辑?