首页 > 解决方案 > JavaScript 错误 - 无法设置未定义的属性“textDecoration”

问题描述

我正在尝试为我的按钮创建一个单击事件以更改文本装饰我在完成事件侦听器下不断收到此错误。

这是我的代码-

let li = document.createElement('li');
let rmv = document.createElement('button');
let done = document.createElement('button');    
      
rmv.classList.add('remove-button');
done.classList.add('done-button');      
li.classList.add('li-item');
      
rmv.textContent = 'X';
done.textContent = '✔️';      
      
rmv.addEventListener('click', handleRemove);
      
done.addEventListener('click', function(){ 
  txt.style.textDecoration = "line-through";
})   

标签: javascript

解决方案


这将解决它。最好将这样的相对路径用于动态创建的输出。它为您提供更大的灵活性。解释一下,e就是event点击的。点击监听器总是有一个参数event,你可以访问触发它的元素event.target。然后你找到最近的 'li' 容器并将样式应用于该容器。您也可以使用相同的逻辑来删除元素。

done.addEventListener('click', function(e){ 
  e.target.closest('li').style.textDecoration = "line-through";
})  

推荐阅读