首页 > 解决方案 > querySelector() 只给一个类而不是多个

问题描述

在我的代码中,我试图将所有以 priceList_ 开头的类放入一个数组中以供以后使用。我以前这样做的代码是:var prefix = document.querySelector('[class^="priceList_"]').className; 这段代码有一个问题,那就是它只给出具有该前缀的第一个类,而不是给出一个类数组。有谁知道这个问题的解决方案?

标签: javascriptqueryselector

解决方案


您需要使用document.querySelectorAlldocument.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);

推荐阅读