我正在尝试编写fallback of getElementsByClassName
with querySelectorAll
for IE8。
问题出现在以数字开头的类中。
我知道标识符不能以数字开头,因此querySelectorAll
会引发错误。但getElementsByClassName
接受了他们。
然后,有没有办法逃避这些数字?
答案 0 :(得分:1)
我找到了解决方案!
标识符不能以数字开头,但可以以unicode escaped数字开头(参见related answer)。
然后,我可以使用
.replace(/\b\d/g, function(match){return '\\0000' + match.charCodeAt(0).toString(16);})
上面的代码转义了unicode代码有十六进制两位数的字符。但对于数字,以下也有效:
.replace(/\b\d/g, '\\00003$&')