Javascript addEventListener在控制台中工作,但在JS中不工作

Javascript addEventListener在控制台中工作,但在JS中不工作,javascript,Javascript,我有一个图书馆的代码。 我正在使用“读取”标志,我想在点击时添加一个事件,将图标从勾号更改为X。 我可以通过谷歌控制台来做,但当我在JS中做的时候,我会得到一个空错误,这有点奇怪 我尝试这样做的方式: document.querySelector('#sign).addEventListener('click', (e)=>{ if(e.target.innerHTML === '✔'){ e.target.innerHTML = 'X'} else{ e

我有一个图书馆的代码。

我正在使用“读取”标志,我想在点击时添加一个事件,将图标从勾号更改为X。 我可以通过谷歌控制台来做,但当我在JS中做的时候,我会得到一个空错误,这有点奇怪

我尝试这样做的方式:

document.querySelector('#sign).addEventListener('click', (e)=>{
if(e.target.innerHTML === '✔'){
        e.target.innerHTML = 'X'}
else{
        e.target.innerHTML = '✔'
})
即使我只键入以下内容,也会得到一个空错误:

let sign = document.querySelector('#sign').textContent;
你想要这个

  • 将符号更改为类,因为ID必须是唯一的-
  • 您需要委派,以便将单击添加到容器中
还请记住避免使用默认设置,否则页面将跳转

document.querySelector(“#图书列表”).addEventListener('click',(e)=>{
e、 预防默认值();
设tgt=e.target,cls=e.target.classList;
控制台日志(cls)
如果(cls.contains(“delete”))tgt.closest(“tr”).remove()
else if(cls.包含(“符号”)){
e、 target.textContent=e.target.textContent==”✔" ? "
这行应该这样写

document.querySelector('#sign').addEventListener('click', (e)=>{
document.querySelector('#sign').addEventListener('click',(e)=>{
如果(e.target.innerHTML=='✔'){
e、 target.innerHTML='X'}
否则{
e、 target.innerHTML=✔'
}})
let sign=document.querySelector(“#sign”).textContent;
点击检查图标

您在此处放置的代码存在语法错误;请不仅在外部网站上包含here on堆栈溢出。您可以使用此操作。您正在动态添加
符号
元素。由于第一次加载页面时不存在该元素,因此不会将
事件侦听器
添加到该元素中ID将不是唯一的nd在页面加载(动态)时不可用,因此您的代码将无法工作。请参阅我的答案以获得有效的解决方案
document.querySelector('#sign').addEventListener('click', (e)=>{