i将var liElement = document.createElement('li');
移出函数addTodo()
,使该函数在中工作
function removeTodo(){
liElement.remove()
};
但现在我有另一个问题,那就是我不能添加一个以上的todo(li(
const input = document.getElementById('input');
const addBtn = document.getElementById('btn');
const todoList = document.getElementById('todoList');
var ulElement = document.createElement('ul');
var liElement = document.createElement('li');
let placeholderValue = '';
//此代码用于清除占位符值
input.addEventListener('focus' , () => {
placeholderValue = input.placeholder;
input.placeholder = '';
});
input.addEventListener('blur' , ()=> {
input.placeholder = placeholderValue;
});
//该功能用于添加到列表
function addTodo(){
todoList.appendChild(ulElement)
ulElement.appendChild(liElement);
liElement.classList.add('liElement')
liElement.innerHTML = input.value;
};
addBtn.addEventListener('click' , addTodo)
// this function is for remove todo from the list
function removeTodo(){
liElement.remove()
};
liElement.addEventListener('contextmenu' , (e) => {
e.preventDefault()
removeTodo()
});
您不使用createTextNode
,例如:
var t = document.createTextNode(input.value);
liElement.appendChild(t);
你建造了一个非常复杂的结构。让你自己更轻松。
最后
const todoList = document.getElementById('todoList');
var ulElement = document.createElement('ul');
为什么使用createElements?你不需要这些。您可以在html文件中创建它们。