querySelectorAll无法识别名称以数字开头的section问题排查
问题解答
你当前的转义写法不对,这是因为CSS选择器对数字开头的ID有特定的转义规则,不是简单加个反斜杠就行。
两种正确的解决方法
按CSS规则转义数字开头的ID
对于ID是4_someText_here的section,正确的选择器写法应该是:document.querySelectorAll("section#\\34 _someText_here")这里
\34是数字4的十六进制ASCII编码,在JavaScript字符串里需要用双反斜杠\\来表示单个反斜杠。CSS不允许选择器直接以数字开头,必须通过这种转义方式规避限制。用属性选择器绕开转义麻烦
这种方法更简单直观,完全不用纠结转义问题:document.querySelectorAll("section[id='4_someText_here']")直接通过
id属性的精确匹配定位元素,不管ID开头是什么字符都能正常工作。
为什么你的写法无效
你写的\\4 _someText_here,解析后会变成CSS选择器里的\4 _someText_here——这里的\4代表的是ASCII码为4的控制字符,而不是数字4,所以根本匹配不到目标元素。
内容的提问来源于stack exchange,提问作者AndiAna
相关产品推荐
相关产品推荐

