javascript - 无法单独从列表中划掉项目
问题描述
我一直在尝试构建一个待办事项列表应用程序,当我尝试单击列表上的任意位置时,总是第一项从列表中划掉,而不是被点击的那一项。以及在下面的 CSS 代码中应用 CSS 样式的最佳方式是什么?
我已经发布了下面的代码。
const container = document.querySelector('.container');
const list = document.querySelector('#list');
const textBox = document.querySelector('#textBox');
const submit = document.querySelector('#submit');
const data = document.querySelector('.data');
const close = document.querySelector('.close');
const li = document.querySelector('LI');
list.addEventListener('click', function (e) {
if (e.target ) {
li.classList.add('task');
}
});
<div class="container">
<h1>To Do</h1>
<div class="data">
<ul id="list">
<li>Meet Denise<span class="close"></span></li>
<li><span class="check"></span>Grocery</li>
<li>Book Appointment</li>
<li>Watch GOT</li>
<li>Book Flight</li>
<li>Buy Ipad</li>
<li>Pick up kids</li>
<li>Complete Homework</li>
</ul>
</div>
解决方案
const li = document.querySelector('LI');
此行选择li
整个文档中第一次出现的标记。
您已经e
在 addEventListener 处理程序中获取事件并检查目标。更改您的代码以将类添加到e.target
:
const list = document.querySelector('#list');
list.addEventListener('click', function (e) {
if (e.target) {
e.target.classList.add('task')
}
})
.task {
text-decoration: line-through;
}
<div class="container">
<h1>To Do</h1>
<div class="data">
<ul id="list">
<li>Meet Denise</li>
<li>Grocery</li>
<li>Book Appointment</li>
<li>Watch GOT</li>
<li>Book Flight</li>
<li>Buy Ipad</li>
<li>Pick up kids</li>
<li>Complete Homework</li>
</ul>
</div>
您也可以删除未使用的选择器。
推荐阅读
- excel - Excel VBA 在第二个空格后拆分
- django - 在 django 中检查我的数据库时出现问题
- cmd - IP 地址以 fra 和 ec 开头是什么意思?
- maven -
命令“mvn dependency:resolve”与“mvn clean install”有何不同? - javascript - 在反应中的svg代码中添加文本和中心
- sip - SIP/2.0 439 第一跳缺少出站支持错误
- ios - LaunchScreen.storyboard 在设备上的显示与在 Xcode 中的显示不同?
- java - 如何获得 2D 数组的行相对于 1D 数组元素的总和?
- swift - Firebase for iOS 应用程序未按预期工作
- scala - 如何删除特定列,然后从 spark 数据框中选择所有列