【发布时间】:2018-12-29 17:17:39
【问题描述】:
我用 JS 编写了一个非常简单的 Todo 应用程序。它工作正常,我有一些默认任务,我可以单击它们将它们更改为已完成或撤消,但问题是当我添加新任务时,我无法对其执行任何操作。
const input = document.querySelector('#todoText');
const todo = document.querySelector('#todo');
const todoLi = document.querySelectorAll('#todo li');
// Add Todo
input.addEventListener('keyup', e => {
if (e.keyCode === 13) {
// Get input value
let val = e.target.value;
// Create <li>
const li = document.createElement('li');
// Create text node from input value
let text = document.createTextNode(val);
// Pass input value into <li>
li.appendChild(text);
// Add input value in Todo list
todo.appendChild(li);
// Reset input value after enter
e.target.value = '';
}
})
todoLi.forEach( item => {
item.addEventListener('click', e => {
if ( e.target.classList.contains('done') ) {
e.target.classList.remove('done')
} else {
e.target.classList.add('done')
}
})
})
这是我在 Codepen 上的PEN
【问题讨论】:
标签: javascript dom foreach event-handling closures