Blogger Information
Blog 94
fans 0
comment 0
visits 92650
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
【JS】DOM增删改(1元素增删改,2操作元素内容,3指定位置插入)
可乐随笔
Original
399 people have browsed it

DOM增删改(1元素增删改,2操作元素内容,3指定位置插入)

1.DOM元素的增删改

1.创建元素:createElement()
2.追加元素 :append()
3.创建片断:createDocumentFragment
4.后面添加:after()
5.前面添加:before()
6.克隆节点:cloneNode(true)
7.替换子元素:replaceChild()
8.删除元素:remove()

  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>DOM元素的增删改</title>
  8. </head>
  9. <body>
  10. <script>
  11. /**
  12. * * 1.创建元素:createElement()
  13. * * 2.追加元素 :append()
  14. * * 3.创建片断:createDocumentFragment
  15. * * 4.后面添加:after()
  16. * * 5.前面添加:before()
  17. * * 6.克隆节点:cloneNode(true)
  18. * * 7.替换子元素:replaceChild()
  19. * * 8.删除元素:remove()
  20. */
  21. //1. 创建元素:createElement()
  22. const ul = document.createElement('ul');
  23. //2. 追加元素:append()
  24. //获取元素
  25. // console.log(document.body)
  26. // console.log(document.head)
  27. // console.log(document.title)
  28. // console.log(document.doctype)
  29. // console.log(document.URL)
  30. // console.log(document.defaultView)
  31. // console.log(document.documentElement)
  32. // 3. 创建文档片段:createDocumentFragment()
  33. document.body.append(ul);
  34. //创建一个临时父级
  35. const frag = document.createDocumentFragment();
  36. for (let i = 1; i <= 5; i++) {
  37. const li = document.createElement('li');
  38. li.append(`item-${i}`);
  39. //先挂载到临时文档片断元素中(临时父级)
  40. //所有的操作,全在内存中进行,不会造成页面的无效重复渲染
  41. frag.append(li);
  42. }
  43. //统一渲染,片段挂载到ul上,只需要渲染一次
  44. ul.append(frag);
  45. // 4.后面添加:after()
  46. //在第3个元素后面添加一个新的<li>,分三步
  47. // 第一步:先要找到第3个元素
  48. const three = ul.querySelector(':nth-child(3)');
  49. // 第二步:创建一个新的元素
  50. let li = document.createElement('li');
  51. li.append('after item');
  52. // 第三步:添加到第3个元素后面
  53. three.after(li);
  54. // 5.前面添加:before()
  55. // 第一步:先要找到第3个元素
  56. // 第二步:创建一个新的元素
  57. li = document.createElement('li');
  58. li.append('before item');
  59. // 第三步:添加到第3个元素后面
  60. three.before(li);
  61. // 6.克隆节点:cloneNode(true)
  62. // true:深度克隆。将后代全部复制
  63. li = li.cloneNode(true);
  64. li.append('last item');
  65. ul.append(li);
  66. // 7.替换子元素:replaceChild()
  67. // replaceChild(新元素,旧元素)
  68. // 任务:将第一个元素替换
  69. // 第一步:找到第一个
  70. const first = ul.firstElementChild;
  71. // 第二步:创建一个新元素
  72. const h3 = document.createElement('h3');
  73. h3.append('php中文网');
  74. // 第三步:替换
  75. ul.replaceChild(h3, first);
  76. // 8.删除元素:remove()
  77. ul.firstElementChild.remove();
  78. ul.lastElementChild.remove();
  79. three.remove();
  80. </script>
  81. </body>
  82. </html>

2.操作元素内容

1.textContent:全部内容(包括JS,css,隐藏内容)
2.innerText:返回已渲染(可见)内容
3.innerHTML:替换元素内容(html)
4.outerHTML:替换元素自身(html)

  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. <body>
  10. <div class="box">
  11. <style>
  12. h2 {
  13. color: red;
  14. }
  15. </style>
  16. <h2>通知</h2>
  17. <span style="display: none">试用期员工不参加</span>
  18. <p>今天下午17:00开会,开发部,运营部全部参加</p>
  19. </div>
  20. <script>
  21. /**
  22. * * 1.`textContent`:全部内容(包括JS,css,隐藏内容)
  23. * * 2.`innerText`:返回已渲染(可见)内容
  24. * * 3.`innerHTML`:替换元素内容(html)
  25. * * 4.`outerHTML`:替换元素自身(html)
  26. */
  27. //box
  28. const box = document.querySelector('.box');
  29. let content = box.textContent;
  30. console.log(content);
  31. // 2. `innerText`:返回已渲染(可见)内容
  32. content = box.innerText;
  33. console.log(content);
  34. // 3.`innerHTML`:替换元素内容(html)
  35. box.innerHTML = '<h2>php中文网</h2>';
  36. // 4.`outerHTML`:替换元素自身(html)
  37. //box.outerHTML = '<h1>php中文网</h1>';
  38. box.outerHTML = null;
  39. // 干掉了box div
  40. </script>
  41. </body>
  42. </html>

3.指定位置插入

指定位置插入

1)插入位置

1.beforebegin:起始元素前面
2.afterbegin:起始元素之后
3.beforeend:结束元素之前
4.afterend:结束元素之后

2)API方法

1.insertAdjacentElement():指定位置插入元素
2.insertAdjacentIext():指定位置插入文本节点
3.insertAdjacentHTML:指定位置插入元素节点(DOMString)

  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. <body>
  10. <div class="list">
  11. <li>item1</li>
  12. <li>item2</li>
  13. <li>item3</li>
  14. <li>item4</li>
  15. <li>item5</li>
  16. </div>
  17. <script>
  18. // 指定位置插入
  19. // (1)插入位置
  20. // 1.`beforebegin`:起始元素前面
  21. // 2.`afterbegin`:起始元素之后
  22. // 3.`beforeend`:结束元素之前
  23. // 4.`afterend`:结束元素之后
  24. // (2)API方法
  25. // 1.`insertAdjacentElement()`:指定位置插入元素
  26. // 2.`insertAdjacentIext()`:指定位置插入文本节点
  27. // 3.`insertAdjacentHTML`:指定位置插入元素节点(DOMString)
  28. const list = document.querySelector('.list');
  29. //1.`insertAdjacentElement()`:指定位置插入元素
  30. const h3 = document.createElement('h3');
  31. h3.textContent='商品列表';
  32. list.insertAdjacentElement('beforebegin',h3)
  33. // 2.`insertAdjacentIext()`:指定位置插入文本节点
  34. h3.insertAdjacentText('beforeend','(特价)')
  35. // 3.`insertAdjacentHTML`:指定位置插入元素节点(DOMString)
  36. // 创建html元素:createElement(),element.innerHTML
  37. // 可以将HTML字符串,直接解析成html元素
  38. let p = '<p style="color:red">商品数量:5 件</p>';
  39. // list.after(p);
  40. // list.innerHTML =p;
  41. list.insertAdjacentHTML('afterend',p);
  42. </script>
  43. </body>
  44. </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