我正在嘗試在清單中的每個項目中新增刪除按鈕。只要我沒有刪除按鈕,添加它們就可以工作。
const newcontainer = document.getElementById("toDoContainers"); //gets number of list items in todolist //adds list item to list function deleteitem(paramitem){ var element = document.getElementById(paramitem); element.remove(paramitem); } function addnew(){ let numb = document.getElementById("todolistitems").childElementCount; var listitem = document.createElement("li"); var reallist = document.getElementById("todolistitems"); var inputvar = document.getElementById("inputfield").value; var node = document.createTextNode(inputvar); let numbvar = numb +1; listitem.appendChild(node); listitem.setAttribute('id', numbvar); listitem.addEventListener('onClick', deleteitem(listitem)); reallist.appendChild(listitem); var inputvar = document.getElementById("inputfield").value=""; // node.appendChild(document.createTextNode(inputvar)); /// document.getElementById("toDoContainers").innerHTML=inputvar; }
<h1>To Do List</h1> <div class="container"> <input id="inputfield" type="text"><button id="addToDo" onclick="addnew()">Add</button> <div class="tO" id="toDoContainers"> <ul id="todolistitems"> </ul> </div> </div>
我嘗試了一種方法,在創建的每個清單項目上,您可以「onclick」=deleteitem(item)。我嘗試在刪除函數中使用 queryselector、getelementbyId 和 queryselectorall。
只要我不嘗試新增刪除功能,新增清單項目就可以運作。
P粉6595182942024-04-02 17:45:02
您的程式碼中有一些錯誤。
您需要將其包裝在另一個函數中,該函數會傳回要在按一下時執行的函數,並修復該錯誤,如下所示:
const newcontainer = document.getElementById("toDoContainers"); //gets number of list items in todolist //adds list item to list function deleteitem(paramitem) { var element = document.getElementById("list" + paramitem); element.remove(); } function addnew() { let numb = document.getElementById("todolistitems").childElementCount; var listitem = document.createElement("li"); var reallist = document.getElementById("todolistitems"); var inputvar = document.getElementById("inputfield").value; var node = document.createTextNode(inputvar); let numbvar = numb + 1; listitem.appendChild(node); listitem.setAttribute("id", "list" + numbvar); listitem.addEventListener("click", function () { deleteitem(numbvar); }); reallist.appendChild(listitem); var inputvar = (document.getElementById("inputfield").value = ""); // node.appendChild(document.createTextNode(inputvar)); /// document.getElementById("toDoContainers").innerHTML=inputvar; }
To Do List