javascript - 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";
})
解决方案
这将解决它。最好将这样的相对路径用于动态创建的输出。它为您提供更大的灵活性。解释一下,e
就是event
点击的。点击监听器总是有一个参数event
,你可以访问触发它的元素event.target
。然后你找到最近的 'li' 容器并将样式应用于该容器。您也可以使用相同的逻辑来删除元素。
done.addEventListener('click', function(e){
e.target.closest('li').style.textDecoration = "line-through";
})
推荐阅读
- php - 如何使用数组中的 preg_grep 查找仅/更多指定字母的单词?
- android-studio - 安装在 android studio 中的“Unzipping Dart SDK”处冻结
- dafny - Dafny,forall 分配中的触发器
- php - 是否可以使用 PHP Imagick 更改透明图像上的文本质量
- postgresql - 升级到 10.3 后 postgresql 的 CPU 使用率大幅增加
- java - 我可以使用单个对象访问具有不同属性的不同类的方法吗?
- excel - 如何将两个数字与额外的零串在一起
- ruby - Ruby解码字符串
- javascript - 如何使用不同的控制器实例多次创建视图?
- matlab - 编译后如何将用户创建的 .mat 文件添加到搜索路径