• DOM的增删改


    1、创建元素节点对象

     document.createElement()

     可以创建一个元素节点对象

     它需要一个标签名作为参数,根据该标签名创建元素节点

     并将创建好的对象作为返回值返回

    2、 创建一个文本节点               

    document.createTextNode()

    可以用来创建一个文本节点对象

    需要一个文本内容作为参数,将会根据文本内容创建文本节点,并将新的节点返回

    小知识: appendChild()

                   向一个父节点中添加一个子节点

                   语法: 父节点.appendChild(子节点)

    3、插入一个节点

     insertBefore()

     可以在指定子节点前插入新的子节点

     语法

             父节点.insertBefore(新节点,旧节点);

    4、替换一个节点

    replaceChild()

    可以使用指定子节点替换已有子节点

    语法

             父节点.replaceChild(新节点,旧节点);

    5、删除一个节点

    removeChild()

    删除一个子节点

    语法  父节点. removeChild(子节点);

    不知道父节点是什么的情况下: 

    子节点.parentNode.removeChild(子节点);

    案例应用:

    1. <script>
    2. window.onload=function(){
    3. // 创建一个清莱节点添加到city
    4. myClick("btn01",function(){
    5. // 创建清莱节点
    6. // 创建li
    7. /*
    8. * document.createElement()
    9. * 可以创建一个元素节点对象
    10. * 它需要一个标签名作为参数,根据该标签名创建元素节点
    11. * 并将创建好的对象作为返回值返回
    12. */
    13. var li=document.createElement("li");
    14. // 创建清莱的文本节点
    15. /*
    16. * document.createTextNode()
    17. * 可以用来创建一个文本节点对象
    18. * 需要一个文本内容作为参数,将会根据文本内容创建文本节点,并将新的节点返回
    19. */
    20. var gzText=document.createTextNode("清莱");
    21. // 将清莱的text设置为li的子节点
    22. /*
    23. * appendChild()
    24. * 向一个父节点中添加一个子节点
    25. * 语法: 父节点.appendChild(子节点)
    26. */
    27. li.appendChild(gzText);
    28. // 获取id为city的节点
    29. var city=document.getElementById("city");
    30. // 将清莱节点添加到city
    31. city.appendChild(li);
    32. });
    33. // 将清莱节点插到bj前
    34. myClick("btn02",function(){
    35. // 创建一个清莱
    36. var li=document.createElement("li");
    37. var gzText=document.createTextNode("清莱");
    38. li.appendChild(gzText);
    39. // 获取id为bj的节点
    40. var bj=document.getElementById("bj");
    41. /*
    42. * insertBefore()
    43. * 可以在指定子节点前插入新的子节点
    44. * 语法
    45. * 父节点.insertBefore(新节点,旧节点);
    46. */
    47. // 获取city
    48. var city=document.getElementById("city");
    49. city.insertBefore(li,bj);
    50. });
    51. // 使用清莱节点替换bj节点
    52. myClick("btn03",function(){
    53. // 创建一个清莱
    54. var li=document.createElement("li");
    55. var gzText=document.createTextNode("清莱");
    56. li.appendChild(gzText);
    57. // 获取id为bj的节点
    58. var bj=document.getElementById("bj");
    59. // 获取city
    60. var city=document.getElementById("city");
    61. /*
    62. * replaceChild()
    63. * 可以使用指定子节点替换已有子节点
    64. * 语法
    65. * 父节点.replaceChild(新节点,旧节点);
    66. */
    67. city.replaceChild(li,bj);
    68. });
    69. // 删除bj节点
    70. myClick("btn04",function(){
    71. // 获取id为bj的节点
    72. var bj=document.getElementById("bj");
    73. // 获取city
    74. // var city=document.getElementById("city");
    75. /*
    76. * removeChild()
    77. * 删除一个子节点
    78. * 语法 父节点. removeChild(子节点);
    79. *
    80. *
    81. * 子节点.parentNode.removeChild(子节点);
    82. */
    83. // city.removeChild(bj);
    84. // 不知道bj的父元素情况(常用)
    85. bj.parentNode.removeChild(bj);
    86. });
    87. // 读取city内html代码
    88. myClick("btn05",function(){
    89. // 获取city
    90. var city=document.getElementById("city");
    91. alert(city.innerHTML);
    92. });
    93. // 设置bj内的html代码
    94. myClick("btn06",function(){
    95. // 获取id为bj的节点
    96. var bj=document.getElementById("bj");
    97. bj.innerHTML="清莱";
    98. });
    99. /*
    100. * 使用innerHTML也可以进行增删改的部分
    101. * 一般两种方式结合使用
    102. */
    103. // 创建一个清莱节点添加到city
    104. myClick("btn07",function(){
    105. var city=document.getElementById("city");
    106. // city.innerHTML+="<li>清莱</li>";
    107. // 创建一个li
    108. var li=document.createElement("li");
    109. // 向li中设置文本
    110. li.innerHTML="清莱";
    111. // 将li添加至city
    112. city.appendChild(li);
    113. });
    114. };
    115. function myClick(idStr,fun){
    116. var btn=document.getElementById(idStr);
    117. btn.onclick=fun;
    118. }
    119. </script>

     

  • 相关阅读:
    【QT】串口通信,usb通信QSerialPort::TimeoutErro超时问题
    JUC P8 ThreadLocal 基础+代码
    【周末闲谈】谈谈数学转码这一年来的体会与反思
    未来十年将是Web3.0发展的黄金十年
    tensorflow 与 cuda和cuDNN的版本对应表
    从FT的性质上理解幅度调制与频谱搬移
    超声波清洗机需要注意什么?不能错过的超声波清洗机
    《Python进阶系列》二十八:mmap模块(处理大文本)
    分布式项目搭建
    《BPF Performance Tools —— 洞悉Linux系统和应用性能》学习笔记 —— 第一章 介绍(2)
  • 原文地址:https://blog.csdn.net/weixin_61466362/article/details/125434542