使用 querySelector 获取包含某个类的所有元素

Leo*_*ssi 8 javascript css-selectors html2canvas

为了更改我正在使用的类中的某些样式querySelector()

el.querySelector('.fa fa-car').style.display = "none";
Run Code Online (Sandbox Code Playgroud)

这对于一个元素来说效果很好,但如果有更多元素包含此类,并且我想将所有元素的显示更改为无,则此命令仅删除它的第一次出现,而下一个元素保持不变。

我尝试这样做querySelectorAll()

 el.querySelectorAll('.fa fa-car').style.display = "none";
Run Code Online (Sandbox Code Playgroud)

但这会返回一条错误消息:

html2canvas:类型错误:无法设置未定义的属性“显示”

关于如何获取包含特定类的所有元素并对它们执行操作有什么想法吗?

Mam*_*mun 15

Element 方法querySelectorAll()返回一个静态(非实时)NodeList,表示与指定选择器组匹配的文档元素列表。

用于Document.querySelectorAll()获取所有元素。然后使用forEach()设置每个元素中的样式:

var elList = document.querySelectorAll('.fa.fa-car');
elList.forEach(el => el.style.display = "none");
Run Code Online (Sandbox Code Playgroud)

请注意:某些旧版本的 IE (<8) 将不支持querySelectorAll(). 在这种情况下使用

var elList = document.querySelectorAll('.fa.fa-car');
elList.forEach(el => el.style.display = "none");
Run Code Online (Sandbox Code Playgroud)