博客列表 >1. 实例演示dom增删改的常用方法 2. 改写留言板案例, 添加自定义样式

1. 实例演示dom增删改的常用方法 2. 改写留言板案例, 添加自定义样式

秋闲独醉
秋闲独醉原创
2022年07月28日 09:08:32268浏览
  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>Document</title>
  8. </head>
  9. <body>
  10. <!-- 1. 实例演示dom增删改的常用方法
  11. 2. 改写留言板案例, 添加自定义样式 -->
  12. <script>
  13. /**
  14. *1.createElement(ele):创建新的元素,doucment上调用
  15. *2.append(string/ele):追加到父级最后子节点后,在父节点上调用;也可在新元素上调用,添加内容。
  16. *3.before(string/ele):某元素之前插入节点,在当前元素上调用
  17. *4.after(string/ele):在某元素之后插入节点,在当前元素上调用
  18. *5.cloneNode(true):克隆节点(true:包含子节点),在要被克隆的节点上调用
  19. *6.replaceChild(ele,pos):替换子元素,在父级节点上调用
  20. *7.node.remove():移除当前元素,在当前元素调用。
  21. *
  22. */
  23. // 创建新的元素
  24. const ul = document.createElement("ul");
  25. //追加元素
  26. document.body.append(ul);
  27. for (let i = 0; i < 6; i++) {
  28. const li = document.createElement("li");
  29. //添加内容
  30. li.append("item" + (i + 1));
  31. //设置字号大小
  32. li.style.fontSize = "30px";
  33. //追加元素
  34. ul.append(li);
  35. }
  36. console.log(ul);
  37. //创建元素,添加内容,添加样式,获取第三个li,插入节点
  38. const li = document.createElement("li");
  39. li.append("new item");
  40. li.style.color = "pink";
  41. li.style.fontSize = "30px";
  42. const item = document.querySelector("ul li:nth-of-type(3)");
  43. item.before(li);
  44. //克隆节点
  45. const newNode = li.cloneNode(true);
  46. item.after(newNode);
  47. //节点替换
  48. const newItem = document.createElement("li");
  49. newItem.append("替换后的节点");
  50. const oldItem = document.querySelector("ul li:last-of-type");
  51. ul.replaceChild(newItem, oldItem);
  52. //节点删除
  53. const deleteItem = document.querySelector("ul li:first-of-type");
  54. deleteItem.remove();
  55. </script>
  56. <script>
  57. //insertAdjacentElement('插入位置',元素)
  58. //插入位置有四个
  59. //afterBegin:开始标签之后,第一个子元素
  60. //beforeBegin:开始标签之前,是它的前一个兄弟元素
  61. //beforeEnd:结束标签之前,它的最后一个子元素
  62. //afterEnd:结束标签之后,它的下一个兄弟元素
  63. const h3 = document.createElement("h3");
  64. h3.append("这是一个ul列表");
  65. ul.insertAdjacentElement("beforeBegin", h3);
  66. const insertItem = document.createElement("li");
  67. insertItem.append("这是一个afterBegin");
  68. ul.insertAdjacentElement("afterbegin", insertItem);
  69. const insertItem2 = document.createElement("li");
  70. insertItem2.append("这是一个beforeEnd");
  71. ul.insertAdjacentElement("beforeEnd", insertItem2);
  72. const h4 = document.createElement("h4");
  73. h4.append("这是一个footer");
  74. ul.insertAdjacentElement("afterEnd", h4);
  75. </script>
  76. <input type="text" name="message" id="message" onkeydown="addMessage(this)" palceholder="请输入留言" autofocus />
  77. <ul class="list"></ul>
  78. <script>
  79. //2. 改写留言板案例, 添加自定义样式
  80. let i = 0;
  81. function addMessage(ele) {
  82. if (event.key === "Enter") {
  83. if (ele.value.length === 0) {
  84. alert("留言不能为空");
  85. ele.focus();
  86. return false;
  87. }
  88. const ul = document.querySelector(".list");
  89. const li = document.createElement("li");
  90. //添加自定义属性
  91. li.setAttribute("data-index", ++i);
  92. //获取自定义属性
  93. ele.value = "第" + li.dataset.index + "条: " + ele.value + "<button onclick='del(this.parentNode)'>删除</button>";
  94. li.innerHTML = ele.value;
  95. // console.log(li);
  96. ul.insertAdjacentElement("afterbegin", li);
  97. ele.value = null;
  98. }
  99. }
  100. function del(ele) {
  101. return confirm("要删除吗?") ? ele.remove() : false;
  102. }
  103. </script>
  104. </body>
  105. </html>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议