Blogger Information
Blog 21
fans 0
comment 0
visits 9330
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
dom增删改的常用方法
P粉116103988
Original
411 people have browsed it

1. 实例演示dom增删改的常用方法

代码如下:

  1. <script>
  2. /**
  3. * 1. createElement(ele): 创建新元素, document上调用
  4. * 2. append(string/ele): 追加到父级最后子节点后,在父节点上调用
  5. * 3. before(string/ele): 在某元素之前插入节点, 在当前元素上调用
  6. * 4. after(string/ele): 在某元素之后插入节点, 在当前元素上调用
  7. * 5. cloneNode(true): 克隆节点(true:包含子节点),在要被克隆的节点上调用
  8. * 6. replaceChild(ele,pos): 替换子元素,在父级节点上调用
  9. * 7. remove(ele): 移除子元素, 在父节点上调用
  10. */
  11. // 添加新元素UL:
  12. const ul = document.createElement('ul');
  13. document.body.append(ul);
  14. for(let i=0; i<5; i++){
  15. const li = document.createElement('li');
  16. li.append('text-'+(i+1));
  17. ul.append(li);
  18. }
  19. console.log(ul);
  20. // 创建一个新的li:把它追加到第3个li之前
  21. const li = document.createElement('li');
  22. li.append('php.cn ');
  23. li.style.color = 'red';
  24. // 获取第3个li
  25. let item = document.querySelector('li:nth-of-type(3)');
  26. console.log(item);
  27. // 在第3个li前面添加一个新li:
  28. item.before(li);
  29. // 克隆一个li,然后把它追加到原来第3个li的后面
  30. let clNode = li.cloneNode(true);
  31. item.after(clNode);
  32. // replaceChild()替换子元素:
  33. let targetNode = document.querySelector('li:last-of-type');
  34. // console.log(targetNode.textContent);
  35. const newNode = document.createElement('a');
  36. newNode.href = 'php.cn';
  37. newNode.append('php中文网');
  38. ul.replaceChild(newNode,targetNode);
  39. //移除:
  40. // 移除第一个li:
  41. ul.firstElementChild.remove();
  42. ul.querySelector('li:nth-of-type(4)').remove();
  43. </script>

效果图展示:

2. 改写留言板案例, 添加自定义样式

代码如下:

  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>留言板</title>
  8. </head>
  9. <style>
  10. *{
  11. margin: 0;
  12. padding: 0;
  13. box-sizing: border-box;
  14. }
  15. a{
  16. color: #000;
  17. text-decoration: none;
  18. }
  19. /* ul li{
  20. list-style: none;
  21. } */
  22. .text{
  23. width: 20em;
  24. height: 20em;
  25. margin: auto;
  26. background-color: bisque;
  27. text-align: center;
  28. overflow:auto;
  29. }
  30. .text .lyb2,
  31. .text h2{
  32. padding: 1em;
  33. }
  34. .text .lyb2{
  35. text-align: left;
  36. }
  37. .text .lyb2 .lists{
  38. padding-left: 1em;
  39. }
  40. .text .lyb2 .lists li{
  41. padding: 0.5em;
  42. }
  43. .text .lyb2 .lists li button{
  44. margin-left: 0.5em;
  45. background-color:rgb(10, 43, 174);
  46. color: #fff;
  47. }
  48. </style>
  49. <body>
  50. <div class="text">
  51. <h2>留言板</h2>
  52. <!-- <form action="">
  53. <label for="lyb">留言板:</label>
  54. <input type="text" onkeydown="addMsg(this)" id="lyb" name="lyb" autofocus placeholder="请输入您的留言信息" />
  55. <button onclick="addMsg(this)">提交</button>
  56. </form> -->
  57. <div class="lyb1">
  58. <label for="lyb">留言信息:</label>
  59. <input type="text" onkeydown="addMsg(this)" id="lyb" name="lyb" autofocus placeholder="请输入您的留言信息" />
  60. </div>
  61. <div class="lyb2">
  62. <h3>最新留言:</h3>
  63. <ol class="lists"></ol>
  64. </div>
  65. </div>
  66. <script>
  67. function addMsg(ele){
  68. // console.log(ele);
  69. // console.log(event);
  70. // console.log(event.type);
  71. // console.log(event.key);
  72. if(event.key === 'Enter'){
  73. // 添加一个li,为一条信息:
  74. let li = document.createElement('li');
  75. li.append(ele.value);
  76. if(ele.value.length === 0){
  77. alert('留言信息不能为空');
  78. ele.focus();
  79. return false;
  80. }
  81. // let ul = document.querySelector('.lists').append(li);
  82. let ul = document.querySelector('.lists');
  83. // ul.after(li);
  84. // ul.insertAdjacentElement('afterbegin',li)
  85. // 为每条留言添加一个删除按钮:
  86. ele.value = ele.value + '<button onclick="del(this.parentNode)">删除</button>';
  87. // ul.insertAdjacentElement('afterbegin',`<li>${ele.value}</li>`);
  88. ul.insertAdjacentHTML('afterbegin', `<li>${ele.value}</li>`);
  89. // 清空输入框:
  90. ele.value = null;
  91. }
  92. }
  93. function del(ele){
  94. return confirm('是否删除该信息?') ? ele.remove() : false ;
  95. }
  96. </script>
  97. </body>
  98. </html>

效果图展示:

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