提问者:小点点

是否缺少使用querySelector('#Element')的强制转换?


我的问题找不到相同的答案,所以我决定自己问。 我试图选择一个带有指定ID的HTML元素。

这个版本很好用。

var button = document.getElementById('#submit');

function doSmth(){
    console.log("clicked");
}

button.addEventListener('click', doSmth);

如果我尝试使用QuerySelector运行相同的代码:

var button = document.querySelector('#submit');

我得到以下输出:

Uncaught TypeError: button.addEventListener is not a function

为什么相同的代码输出不同的返回值?

这是提交输入字段。 它是div容器的一部分

<input id="#submit" type="submit">

共1个答案

匿名用户

由于id有#,请使用\\将其转义

null

var button = document.querySelector('#\\#submit');

function doSmth() {
  console.log("clicked");
}

button.addEventListener('click', doSmth);
<input id="#submit" type="submit">