【发布时间】:2021-01-31 09:12:30
【问题描述】:
下面是我的一些代码的 sn-p。想想类固醇的待办事项列表。我正在尝试创建多个 Div 元素,每次按下“保存”按钮时,这些元素都会保存到包含不同列表的页面。实际发生的是显示多个 div,但保存的原始 div 是唯一使用列表信息(就像在待办事项列表中单击提交时出现的新列表项一样,我添加了一个保存按钮和一个输入字段,用户可以使用它来命名他们的列表并将该列表保存到容器中,但只有一个 div 得到更新) . 我知道我快到了,但我已经看了几个小时了,但还是想不通。https://github.com/W33K5Y/TODO-PIRPLE
const saveButton = document.getElementById("submit-save");
const myLists = document.getElementById("my-lists");
const startNote = document.getElementById("start-note");
const listName = document.getElementById("new-list-name");
const myUl = document.getElementById("my-ul-lists");
// ! savebutton listener
saveButton.addEventListener("click", addNewTodo);
// ! make new html elements
const newTodoOl = document.createElement("ol");
const newTodoLi = document.createElement("li");
const listH1 = document.createElement("h4");
// ! =============== function for creating new todo ================================
function addNewTodo() {
const todoDiv = document.querySelector(".todo-container");
const todos = document.querySelectorAll(".todo-item");
todos.forEach(function(todo) {
createLi(todo);
});
listName.value ? listH1.innerText = listName.value : listH1.innerText = "My List";
newTodoDivWrap.classList.add("new-todo-div");
newTodoDivWrap.appendChild(listH1);
newTodoDivWrap.appendChild(newTodoOl);
myLists.appendChild(newTodoDivWrap);
todoReset(todoDiv, startNote);
startLoginSignUpNoneLobbyFlex();
}
// todo function to go in above that removes all of whats in the tido-container
function todoReset(div, lobbyDiv) {
lobbyDiv.remove();
div.firstElementChild.innerHTML = "";
}
function createLi(todo) {
// ! Create LI
const newTodo = document.createElement('li');
newTodo.innerText = todo.innerText;
newTodo.classList.add("todo-saved-item");
newTodoOl.appendChild(newTodo);
}
【问题讨论】:
标签: javascript html function foreach traversal