3

所以,我试图运行这个:

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

1 回答 1

3

这是一个非法的类名。

选择器 4 级规范说:

类选择器以句号 (.U+002E) 形式给出,后跟标识符

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

来自CSS2.1 语法规范

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

因此这个类是不合法的,你不应该期望找到它能够找到它有困难querySelector

(也就是说,getElementsByClassName('3dObject') 工作得很好。)

于 2013-11-07T16:56:20.027 回答