Blogger Information
Blog 43
fans 4
comment 0
visits 19583
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
DOM操作之增删改查/仿制简易留言板
汇享科技
Original
389 people have browsed it

DOM操作之增删改

API名称 描述
createElement 创建新元素
append 追加操作
before 在某一个元素节点之前插入
after 在某一个元素节点之后插入
cloneNode 克隆元素节点
replaceChild 替换元素
remove 移除元素

效果截图:
l6302yk9.png

  1. /* * 1. createElement(ele): 创建新元素, document上调用
  2. * 2. append(string/ele): 追加到父级最后子节点后,在父节点上调用
  3. * 3. before(string/ele): 在某元素之前插入节点, 在当前元素上调用
  4. * 4. after(string/ele): 在某元素之后插入节点, 在当前元素上调用
  5. * 5. cloneNode(true): 克隆节点(true:包含子节点),在要被克隆的节点上调用
  6. * 6. replaceChild(ele,pos): 替换子元素,在父级节点上调用
  7. * 7. remove(ele): 移除元素 谁调用删谁*/
  8. //createElement():创建新元素 在当前文档document上调用
  9. //创建一个ul元素
  10. const ul = document.createElement("ul");
  11. // 将ul追加到body中
  12. document.body.append(ul);
  13. //使用循环添加五个li
  14. for (let i = 0; i < 5; i++) {
  15. //创建一个li元素
  16. const li = document.createElement("li");
  17. // 将li追加到ul中
  18. ul.append(li);
  19. // 追加文本内容到li里
  20. li.append("item" + (i + 1));
  21. }
  22. //添加一个新元素到item2前面
  23. const li = document.createElement("li");
  24. li.append("新节点");
  25. li.style.color = "red";
  26. let item = document.querySelector("li:nth-of-type(2)");
  27. // 在某个元素节点上调用传的是要插入的值
  28. item.before(li);
  29. //添加一个新元素到item3后面
  30. const li1 = document.createElement("li");
  31. li1.append("新节点");
  32. li1.style.color = "blue";
  33. let item1 = document.querySelector("li:nth-of-type(4)");
  34. // 在某个元素节点上调用传的是要插入的值
  35. item1.after(li1);
  36. //克隆元素
  37. // cloneNode:在要被克隆的元素节点上调用
  38. const li3 = li1.cloneNode(true);
  39. let item2 = document.querySelector("li:last-of-type");
  40. item2.before(li3);
  41. //修改元素
  42. // replaceChild:修改对应的节点 用新节点替换就节点 在父节点上调用
  43. const newNode = document.createElement("li");
  44. newNode.style.color = "red";
  45. newNode.append("替换的");
  46. const jiu = document.querySelector("li:first-of-type");
  47. ul.replaceChild(newNode, jiu);
  48. // insertAdjacentElement(插入位置,元素);
  49. // 插入位置有四个
  50. // afterBegin: 起始标签后面
  51. // beforeBegin: 起始标签前面
  52. // afterEnd: 结束标签后面
  53. // beforeEnd: 结束标签之前
  54. // 在ul前面插入一个大标题
  55. const p = document.createElement("h3");
  56. p.append("标题");
  57. ul.insertAdjacentElement("beforebegin", p);
  58. //在ul之后插入大标题
  59. const p1 = document.createElement("h3");
  60. p1.append("标题");
  61. ul.insertAdjacentElement("afterend", p1);
  62. //删除元素
  63. // remove
  64. newNode.remove();
  65. p.remove();
  66. p1.remove();

留言板

  1. <div>
  2. <input type="" onkeydown="ly(this)" placeholder="请输入留言" autofocus />
  3. <ul class="list"></ul>
  4. </div>
  5. <script>
  6. const input = document.querySelector("input");
  7. input.style.border = "none";
  8. input.style.outline = "none";
  9. input.style.background = "#ccc";
  10. let width = window.getComputedStyle(input).width;
  11. width = parseInt(width);
  12. input.style.width = 200 + "px";
  13. let height = window.getComputedStyle(input).height;
  14. height = parseInt(height);
  15. input.style.height = 30 + "px";
  16. input.style.borderRadius = "20px";
  17. input.style.padding = "5px";
  18. const ul = document.querySelector("ul");
  19. ul.style.listStyle = "none";
  20. function ly(e) {
  21. if (event.key == "Enter") {
  22. // 1.拿到留言板的内容 判断是否为空
  23. if (!e.value) {
  24. alert("不能为空");
  25. return false;
  26. e.foucs();
  27. } else {
  28. // 2.将内容显示到页面中
  29. const ul = document.querySelector(".list");
  30. const li = document.createElement("li");
  31. let neirong = `<li style="color:red">${e.value}<button class="shanchu" onclick="del(this.parentNode)" style="margin-left:50px;width:50px border-radius:10px ; background:red ; color:#fff" >删除</button></li>`;
  32. ul.insertAdjacentHTML("afterbegin", neirong);
  33. // 3.清空输入框
  34. e.value = null;
  35. }
  36. }
  37. }
  38. function del(ele) {
  39. confirm("是否删除?") ? ele.remove() : false;
  40. }
  41. </script>
Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post