博客列表 >js实战之留言板

js实战之留言板

P粉933302309
P粉933302309原创
2022年08月17日 02:00:22373浏览

1.DOM操作之增删改

  1. <script>
  2. // 创建元素
  3. const ul = document.createElement("ul");
  4. // 追加元素
  5. document.body.append(ul);
  6. for (let i = 0; i < 10; i++) {
  7. const li = document.createElement("li");
  8. li.append("itme" + (i + 1));
  9. ul.append(li);
  10. }
  11. // 在某一个节点之前插入用before
  12. const li = document.createElement("li");
  13. li.append("新加内容");
  14. const itme = ul.querySelector("li:nth-of-type(5)");
  15. // 当前节点.before(新节点)
  16. itme.before(li);
  17. // 克隆
  18. let kl = li.cloneNode(true);
  19. itme.after(kl);
  20. ul.style.border = "3px solid";
  21. // beforeBegin 开始标签之前
  22. const h3 = document.createElement("h3");
  23. h3.append("新加内容(beforeBegin)");
  24. ul.insertAdjacentElement("beforebegin", h3);
  25. //方法二
  26. ul.insertAdjacentHTML(
  27. "beforebegin",
  28. '<a href="xxx"style="color: red">新家方法二</a>'
  29. );
  30. // afterBegin 开始标签后面,兄弟元素之前
  31. const h4 = document.createElement("h3");
  32. h4.append("新加内容(beforbegin)");
  33. ul.insertAdjacentElement("afterbegin", h4);
  34. // beforeend 最后一个兄弟元素与标签之间
  35. const h5 = document.createElement("h3");
  36. h5.append("新加内容(beforeend)");
  37. ul.insertAdjacentElement("beforeend", h5);
  38. // afterEnd 结束标签之后
  39. const h6 = document.createElement("h3");
  40. h6.append("新加内容(afterend)");
  41. ul.insertAdjacentElement("afterend", h6);
  42. // replaceChild()替换
  43. // replaceChild(新节点,旧节点)
  44. const newNode = document.createElement("li");
  45. newNode.style.color = "red";
  46. newNode.append("替换的");
  47. const jiu = document.querySelector("li:first-of-type");
  48. ul.replaceChild(newNode, jiu);
  49. //删除元素
  50. // remove
  51. newNode.remove();
  52. p.remove();
  53. p1.remove();
  54. </script>

2.留言板

  1. <input
  2. type="text"
  3. onkeydown="addMsg(this)"
  4. placeholder="留言"
  5. autofocus
  6. style="border: 1px solid; height: 50px"
  7. />
  8. <ul
  9. class="list"
  10. style="border: 2px solid; height: 200px; list-style-type: none"
  11. ></ul>
  12. <script>
  13. function addMsg(msg) {
  14. if (event.key === "Enter") {
  15. // <!-- 非空验证 -->
  16. if (msg.value.length === 0) {
  17. alert("留言不能为空!");
  18. msg.focus();
  19. return false;
  20. }
  21. // 添加留言
  22. // const li = document.createElement("li");
  23. // li.append(msg.value);
  24. const ul = document.querySelector(`.list`);
  25. // ul.insertAdjacentHTML("afterbegin", `<li>${msg.value}</li>`);
  26. // 给留言添加删除功能
  27. msg.value =
  28. msg.value +
  29. '<button onclick="del(this.parentNode)" style="background:pink;border:none;">删除</button>';
  30. ul.insertAdjacentHTML(
  31. "afterbegin",
  32. `<li style="color:green;">${msg.value}</li>`
  33. );
  34. // 清空输入框
  35. msg.value = null;
  36. }
  37. }
  38. // 删除功能
  39. function del(msg) {
  40. if (confirm("是否删除?")) {
  41. msg.remove();
  42. }
  43. }
  44. </script>

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议