这是一个购物清单,您可以在其中添加一些商品名称,它将显示该商品。删除该项目时,它将删除该项目。最后,单击该项目后,它将标记为已完成。因此,创建项目和删除项目工作正常,但单击它们时会出现问题。
问题(切换多个列表项时发生)
假设您添加了 3 个项目(xxx、yyy、zzz),单独单击它们时,会将它们切换为完整和不完整。但是 如果您选择了 xxx、它们 zzz,如果您再次单击 zzz,则不会正在工作。而如果点击xxx,则会标记为不完整。
错误
script.js:91 Uncaught DOMException: 无法在“Node”上执行“removeChild”:要删除的节点不是此节点的子节点。在 HTMLLIElement.toggleItem
这是我的代码。
let input = document.querySelector("#item-name");
let button = document.querySelector("input[type=button]");
let items = document.querySelector(".items");
let ul = document.createElement("ul");
items.appendChild(ul);
function disableFunction() {
button.disabled = false;
}
function callfun(event) {
if (event.keyCode === 13) {
console.log("Enter is pressed...");
createList();
}
}
input.addEventListener("input", disableFunction);
button.addEventListener("click", createList);
input.addEventListener("keypress", callfun);
function createList() {
createList();
}
function createList() {
if (input.value.length) {
let li = document.createElement("li");
li.className = "item";
let val = input.value;
if (val.length > 10) {
li.appendChild(document.createTextNode(val.slice(0, 7) + "..."));
} else {
li.appendChild(document.createTextNode(input.value));
}
let btn = document.createElement("button");
let i = document.createElement("i");
i.className = "fa fa-trash fa-2x";
btn.appendChild(i);
btn.addEventListener("click", deleteItem);
// '<i class="fa fa-trash " aria-hidden="true"></i>';
//i = document.getElementsByTagName(i);
li.appendChild(btn);
ul.appendChild(li);
input.value = "";
li.addEventListener("click", toggleItem);
console.log("added...");
}
}
function deleteItem(e) {
// console.log(e, e.target.parentElement.parentElement)
let item = e.target.parentElement.parentElement;
item.style.display = "none";
}
ABOUTYOU
相关分类