如何获取含指定类但无特定属性的DOM元素列表?
解决获取指定类名且无特定属性/属性值元素的问题
你原来的代码无法运行,核心问题是字符串中的引号转义错误,以及可能对:not()选择器的逻辑理解有偏差,以下是针对两种常见需求的修正方案:
场景1:选择带.trans-lang类,且data-translation属性值不等于translated的元素(包括无该属性的元素)
修正后的代码,遵循JS字符串的引号使用规则:
// 用单引号包裹选择器,内部用双引号,无需转义 var sentenceTrans = document.querySelectorAll('.trans-lang:not([data-translation="translated"])'); // 或者用双引号包裹选择器,内部双引号转义 var sentenceTrans = document.querySelectorAll(".trans-lang:not([data-translation=\"translated\"])");
场景2:选择带.trans-lang类,且完全没有data-translation属性的元素
如果你的需求是严格筛选不存在该属性的元素,选择器要调整为:
var sentenceTrans = document.querySelectorAll('.trans-lang:not([data-translation])');
原代码错误原因
你写的"是HTML实体字符,在JavaScript字符串中无法被正确解析,必须换成JS支持的引号或转义方式。
内容的提问来源于stack exchange,提问作者corsaro
相关产品推荐
相关产品推荐

