博客列表 >【JS】DOM增删改(1元素增删改,2操作元素内容,3指定位置插入)

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

可乐随笔
可乐随笔原创
2022年12月03日 15:49:15396浏览

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