博客列表 >【JS】元素操作实战:todoList:留言板

【JS】元素操作实战:todoList:留言板

可乐随笔
可乐随笔原创
2022年12月03日 17:48:21350浏览

元素操作实战:todoList:留言板

关键思路:
使用 Insertadjacenthtml Api 直接添加到 Ul标签的后面即可

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>todoList:留言板</title>
  8. </head>
  9. <body>
  10. <input
  11. type="text"
  12. onkeydown="insertComment(this)"
  13. placeholder="请输入留言"
  14. autofocus
  15. />
  16. <ul class="list"></ul>
  17. <script>
  18. const insertComment = function (ele) {
  19. // console.log(ele)
  20. //任何事件方法中,都有一个事件对象可以直接使用
  21. //event
  22. //console.log(event.key)//获取输入按键
  23. if (event.key === 'Enter') {
  24. //1.判断非空
  25. if (ele.value.length === 0) {
  26. alert('留言不能为空');
  27. //重置焦点
  28. ele.focus();
  29. //直接返回
  30. return false;
  31. }
  32. //2.添加元素
  33. // console.log(ele.value);
  34. // //创建一个新元素来保存留言
  35. // const li = document.createElement('li');
  36. // li.append(ele.value);
  37. // ul = document.querySelector('.list');
  38. // if(ul.firstElementChild != null){
  39. // //将留言插入到第一条之前,确保最新留言在最上面
  40. // ul.firstElementChild.before(li);
  41. // } else {
  42. // ul.append(li);
  43. // }
  44. //使用 insertAdjacentHTML API 直接添加到 ul标签的后面即可
  45. const ul = document.querySelector('.list');
  46. ele.value += `<button onclick="del(this.parentNode)">删除</botton>`
  47. ul.insertAdjacentHTML('afterbegin', `<li>${ele.value}</li>`);
  48. //3.清空输入框
  49. ele.value = null;
  50. }
  51. };
  52. const del = function(ele){
  53. //alert只有确认按钮
  54. //alert('留言将被删除!')
  55. //confirm:有确认和取消按钮
  56. confirm('是否删除?')? ele.remove : false;
  57. //ele.remove();
  58. //ele.outerHTML = null //作用同上
  59. }
  60. </script>
  61. </body>
  62. </html>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议