转义 JavaScript 中 querySelector 的前导数字类名

Escaping leading number classnames for querySelector in JavaScript

本文关键字:数字 JavaScript querySelector 转义      更新时间:2023-09-26

所以,我正在尝试运行这个:

document.querySelector('#js-Overlay .3dObject').classList.toggle('flipY');

我确实意识到你必须逃避它,但以下内容不起作用:

document.querySelector('#js-Overlay ''.3dObject').classList.toggle('flipY');

知道我如何成功转义前导数字类名吗?

示例 HTML:

<div id="js-Overlay">
    <div class="3dObject"></div>
</div>
这是一个

非法的类名。

选择器级别 4 规范说:

类选择器作为句号(.U+002E) 紧跟标识符

我们如何定义标识符?好吧,该页面链接到CSS 2.1规范。

从 CSS2.1 语法规范:

在 CSS 中,标识符(包括元素名称、类和选择器中的 ID)只能包含[a-zA-Z0-9]和 ISO 10646 字符U+00A0及以上,以及连字符 ( - ) 和下划线 ( _ );它们不能以数字、两个连字符或连字符后跟数字开头。

因此,该类是不合法的,您不应该期望找到它时遇到麻烦,并且能够找到它 querySelector .

(也就是说,getElementsByClassName('3dObject')工作正常。