删除清单上的按钮

huangapple go评论103阅读模式
英文:

Delete button on a checklist

问题

我正在尝试在“待办事项列表”部分的所有文本旁边添加一个删除按钮,以便它们与文本居中对齐。

以下是你目前没有删除按钮的代码:

HTML部分:

  1. <h1>标题</h1>
  2. <h3>副标题</h3>
  3. <input type="search" id="new-task" placeholder="Add a task..." />
  4. <button onclick="respond()">OK</button>
  5. <hr />
  6. <div id="todo-list">
  7. <h2>Todo list</h2>
  8. <ul id="liste">
  9. </ul>
  10. </div>
  11. <div id="date">
  12. <input type="datetime-local" value="2023-03-29T11:30" disabled="true" min="2018-06-07T00:00" max="2023-06-14T00:00">
  13. <div></div>
  14. </div>

JavaScript部分:

  1. var tasks = JSON.parse(localStorage.getItem("memtasks"));
  2. for (let i = 0; i < tasks.length; i++) {
  3. var t = tasks[i];
  4. var ul = document.getElementById("liste");
  5. var li = document.createElement("li");
  6. li.appendChild(document.createTextNode(t));
  7. ul.appendChild(li);
  8. }
  9. function respond() {
  10. console.log("test", tasks);
  11. var task = document.getElementById("new-task").value;
  12. if (!task) {
  13. return;
  14. }
  15. tasks.push(task);
  16. console.log(tasks);
  17. localStorage.setItem("memtasks", JSON.stringify(tasks));
  18. var ul = document.getElementById("liste");
  19. var li = document.createElement("li");
  20. li.appendChild(document.createTextNode(task));
  21. ul.appendChild(li);
  22. document.getElementById("new-task").value = "";
  23. }

希望对你有帮助。

英文:

I am trying to add a delete button next to all of my text in the part "todo list, so they have to be centered with it.

Here is my code I did for now without the delete button :

HTML part :

  1. &lt;h1&gt;Titre&lt;/h1&gt;
  2. &lt;h3&gt;Sous-titre&lt;/h3&gt;
  3. &lt;input type=&quot;search&quot; id=&quot;new-task&quot; placeholder=&quot;Ajouter une t&#226;che...&quot; /&gt;
  4. &lt;button onclick=&quot;r&#233;pondre()&quot;&gt; OK &lt;/button&gt;
  5. &lt;hr /&gt;
  6. &lt;div id=&quot;todo-list&quot;&gt;
  7. &lt;h2&gt;Todo list&lt;/h2&gt;
  8. &lt;ul id=&quot;liste&quot;
  9. &lt;/ul&gt;
  10. &lt;/div&gt;
  11. &lt;div id=&quot;date&quot;&gt;
  12. &lt;input type=&quot;datetime-local&quot; value=&quot;2023-03-29T11:30&quot; disabled=&quot;true&quot; min=&quot;2018-06-07T00:00&quot; max=&quot;2023-06-14T00:00&quot;&gt;
  13. &lt;div /&gt;

JAVASCRIPT part :

  1. var tasks = JSON.parse(localStorage.getItem(&quot;memtasks&quot;));
  2. for (let i = 0; i &lt; tasks.length; i++) {
  3. var t = tasks[i];
  4. var ul = document.getElementById(&quot;liste&quot;);
  5. var li = document.createElement(&quot;li&quot;);
  6. li.appendChild(document.createTextNode(t));
  7. ul.appendChild(li);
  8. }
  9. function r&#233;pondre() {
  10. console.log(&quot;test&quot;, tasks);
  11. var task = document.getElementById(&quot;new-task&quot;).value;
  12. if (!task) {
  13. return;
  14. }
  15. tasks.push(task);
  16. console.log(tasks);
  17. localStorage.setItem(&quot;memtasks&quot;, JSON.stringify(tasks));
  18. var ul = document.getElementById(&quot;liste&quot;);
  19. var li = document.createElement(&quot;li&quot;);
  20. li.appendChild(document.createTextNode(task));
  21. ul.appendChild(li);
  22. document.getElementById(&quot;new-task&quot;).value = &quot;&quot;;
  23. }

thanks

答案1

得分: 1

以下是翻译后的代码部分:

  1. // 在这里是一种实现方式。我在代码中添加了注释以进行解释。
  2. // 我添加了一个回退到空数组的选项,以防“memtasks”在
  3. // localStorage中不存在
  4. var tasks = JSON.parse(localStorage.getItem("memtasks")) || [];
  5. // 我重构了创建任务的代码,将其放在一个“addTaskToDOM”函数中,
  6. // 因为它在打开网页时和添加新任务时都会使用。
  7. function addTaskToDOM(task) {
  8. var ul = document.getElementById("liste");
  9. var li = document.createElement("li");
  10. // 当将任务添加到DOM时,您可以创建一个“删除”按钮,
  11. // 在单击时使用“deleteTask”函数
  12. var deleteButton = document.createElement("button");
  13. deleteButton.textContent = "删除";
  14. deleteButton.addEventListener("click",
  15. e => deleteTask(e.target.closest("li"))
  16. );
  17. li.appendChild(task);
  18. li.appendChild(deleteButton);
  19. ul.appendChild(li);
  20. }
  21. // “deleteTask”将从DOM中删除任务
  22. // 更新任务数组
  23. // 然后更新localStorage。
  24. function deleteTask(task) {
  25. task.remove();
  26. tasks = Array.from(document.querySelectorAll("#liste li"))
  27. .map(li => li.childNodes[0].textContent);
  28. localStorage.setItem("memtasks", JSON.stringify(tasks));
  29. }
  30. function répondre() {
  31. var task = document.getElementById("new-task").value;
  32. if (!task) {
  33. return;
  34. }
  35. tasks.push(task);
  36. addTaskToDOM(document.createTextNode(task));
  37. localStorage.setItem("memtasks", JSON.stringify(tasks));
  38. document.getElementById("new-task").value = "";
  39. }
  40. for (let i = 0; i < tasks.length; i++) {
  41. addTaskToDOM(document.createTextNode(tasks[i]));
  42. }

请注意,我已将HTML实体代码(如&quot;)翻译为相应的引号。

英文:

Here's one way of doing it. I added comments in the code for explanation.

  1. //I added a fallback to an empty array in case &quot;memtasks&quot; doesn&#39;t exist in
  2. //localStorage
  3. var tasks = JSON.parse(localStorage.getItem(&quot;memtasks&quot;)) || [];
  4. //I refactored the code for creating a task in an &quot;addTaskToDOM&quot; function
  5. //because it&#39;s used when you open the web page and when you add a new task.
  6. function addTaskToDOM(task) {
  7. var ul = document.getElementById(&quot;liste&quot;);
  8. var li = document.createElement(&quot;li&quot;);
  9. //When a task is added to the DOM, you can create a &quot;delete&quot; button that
  10. //will use the &quot;deleteTask&quot; function when clicked
  11. var deleteButton = document.createElement(&quot;button&quot;);
  12. deleteButton.textContent = &quot;delete&quot;;
  13. deleteButton.addEventListener(&quot;click&quot;,
  14. e =&gt; deleteTask(e.target.closest(&quot;li&quot;))
  15. );
  16. li.appendChild(task);
  17. li.appendChild(deleteButton);
  18. ul.appendChild(li);
  19. }
  20. //&quot;deleteTask&quot; will remove the task from the DOM
  21. // update the tasks array
  22. // then update the localStorage.
  23. function deleteTask(task) {
  24. task.remove();
  25. tasks = Array.from(document.querySelectorAll(&quot;#liste li&quot;))
  26. .map(li =&gt; li.childNodes[0].textContent);
  27. localStorage.setItem(&quot;memtasks&quot;, JSON.stringify(tasks));
  28. }
  29. function r&#233;pondre() {
  30. var task = document.getElementById(&quot;new-task&quot;).value;
  31. if (!task) {
  32. return;
  33. }
  34. tasks.push(task);
  35. addTaskToDOM(document.createTextNode(task));
  36. localStorage.setItem(&quot;memtasks&quot;, JSON.stringify(tasks));
  37. document.getElementById(&quot;new-task&quot;).value = &quot;&quot;;
  38. }
  39. for (let i = 0; i &lt; tasks.length; i++) {
  40. addTaskToDOM(document.createTextNode(tasks[i]));
  41. }

huangapple
  • 本文由 发表于 2023年4月7日 00:47:18
  • 转载请务必保留本文链接:https://go.coder-hub.com/75951903.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定