我正在尝试用JavaScript完成我的待办事项列表。 我使用一个数组,然后将添加的任务推送到它上面,像这样:
let todoitems: string[] = ["einkaufen", "gassi gehen", "fußball spielen"];
window.addEventListener("load", function () {
var todofeld: HTMLElement = document.querySelector(".addlist");
todolist();
var input: HTMLInputElement = document.querySelector("#input");
console.log(input);
var button: HTMLElement = document.querySelector("#But1");
button.addEventListener("click", function () {
todoitems.push(input.value);
todolist();
input.value = "";
console.log(todoitems);
});
function todolist(): void {
todofeld.innerHTML = "";
for (var index = 0; index < todoitems.length; index++) {
todofeld.innerHTML += "<div>" + "<input type='checkbox'>" + todoitems[index] + "<i class='fas fa-trash-alt'id=delete></i>" + "</div>";
}
var total: HTMLElement = document.querySelector("#total");
total.innerHTML = todoitems.length;
}
}});
我如何添加代码删除任何特定列出的项目在单击?
就像@m02ph3u5所说的,您需要迭代您的数组。
但是,您可以使用array.filter
:
click(toRemove: string): void {
todoitems = todoitems.filter((_:string) => { _ !== toRemove });
todolist();
}
这样,todoitems将被一个新数组替换,该数组包含除ToRemove
元素以外的所有元素。
有关array.filter
的详细信息:https://developer.mozilla.org/en-us/docs/web/javascript/reference/global_objects/array/filter