如何选择仅含特定类名的元素并排除含额外类名的元素?
筛选仅含类名"a"的元素
方法1:JS结合筛选函数
先获取所有包含"a"类的元素,再过滤出仅拥有这一个类的元素,无需提前指定其他类名:
// 方式A:直接匹配className(注意若class属性有首尾空格会失效) const exactA = Array.from(document.querySelectorAll('.a')) .filter(el => el.className === 'a'); // 方式B:更严谨的写法,兼容class属性含空格的情况 const exactASafe = Array.from(document.querySelectorAll('.a')) .filter(el => el.classList.length === 1 && el.classList.contains('a'));
方法2:CSS属性选择器
利用[class="a"]直接匹配class属性值严格等于"a"的元素,写法简洁但有局限性:
const exactA = document.querySelectorAll('a[class="a"]');
注意:这种方式会漏掉class属性带首尾空格(如
class=" a ")的元素,不如JS过滤方法健壮。
内容的提问来源于stack exchange,提问作者tanim_ahm
相关产品推荐
相关产品推荐

