javascript - SyntaxError:无法在“文档”上执行“querySelectorAll”:“#0.resizer”不是有效的选择器
问题描述
我尝试querySelectorAll
使用 javascript 在我的网页上执行 a ,但是当我尝试通过使用 div id 作为搜索参数来获取它时,它会收到此错误:
SyntaxError:无法在“文档”上执行“querySelectorAll”:“#0.resizer”不是有效的选择器。
我正在使用 HTML5 和 ReactJS,可能是什么问题?
这是代码行:
alert(document.querySelectorAll("#" + id + ".resizer"));
解决方案?
解决方案
这里真正的问题是 id 选择器#
不能以数字开头。你必须逃避它:
test( '#1.foo' ); // fail
test( '#' + CSS.escape('1') + '.foo' ); // works
test( '#\\31.foo' ); // works
function test( selector ) {
let pass = false;
try {
const elem = document.querySelector( selector );
pass = elem.textContent === "hi";
} catch(e) {
pass = false;
}
console.log( selector, pass );
}
<div id="1" class="foo">hi</div>