如何获取具有多个类的元素

2022-08-30 01:10:59

假设我有这个:

<div class="class1 class2"></div>

如何选择此元素?div

document.getElementsByClassName('class1')[0].getElementsByClassName('class2')[0]

这是行不通的。

我知道,在jQuery中,它是,但我想用香草JavaScript来选择它。$('.class1.class2')


答案 1

(两个类)

var list = document.getElementsByClassName("class1 class2");
var list = document.querySelectorAll(".class1.class2");

(至少一个类)

var list = document.querySelectorAll(".class1,.class2");

异或(一个类,但不是另一个类)

var list = document.querySelectorAll(".class1:not(.class2),.class2:not(.class1)");

NAND(不是两个类)

var list = document.querySelectorAll(":not(.class1),:not(.class2)");

NOR(不是两个类中的任何一个)

var list = document.querySelectorAll(":not(.class1):not(.class2)");

答案 2

它实际上与jQuery非常相似:

document.getElementsByClassName('class1 class2')

MDN Doc getElementsByClassName