【JavaScript】DOM增删改的操作

简介: 【JavaScript】DOM增删改的操作

本期实现功能



增新一个子节点(appendChild)


将新的子节点添加到指定节点


window.onload = function(){
   document.getElementById('bt1').onclick = function(){
       //创建一个li节点
       var addli1 = document.createElement('li');
       //创建一个城市文本节点
       var citytext = document.createTextNode('浙江');
       //将文本节点设置为li节点的字节点
       addli1.appendChild(citytext);
       //获取ul
       var ul = document.getElementById('uls');
       //将li设置为ul的子节点
       ul.appendChild(addli1);
   }
}


在指定的子节点前添加一个新节点(insertBefore)


语法:父节点.insertBefore(新节点,指定节点);


window.onload = function(){
   document.getElementById('bt2').onclick = function(){
    //创建一个li节点
      var addli2 = document.createElement('li');
        //创建一个文本节点
      var citytext = document.createTextNode('四川');
      //将文本节点设置为li的子节点
      addli2.appendChild(citytext);
      //获取贵阳的li节点
      var guiyang = document.getElementById('guiyang');
      //获取ul节点
      var ul = document.getElementById('uls');
      //在贵阳之前插入li
      ul.insertBefore(addli2,guiyang);
  }
}


替换子节点(replaceChild)


语法:父节点.replaceChild(新节点,旧节点);


window.onload = function(){
  document.getElementById('bt3').onclick = function(){
     //创建一个li节点
       var addli2 = document.createElement('li');
       //创建一个文本节点
       var citytext = document.createTextNode('江西');
       //将文本节点设置为li的子节点
       addli2.appendChild(citytext);
       //获取贵阳的li节点
       var guiyang = document.getElementById('guiyang');
       //获取ul节点
       var ul = document.getElementById('uls');
       //替换贵阳子节点
       ul.replaceChild(addli2,guiyang);
   }
}


删除指定节点(removeChild)


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


window.onload = function(){
   document.getElementById('bt4').onclick = function(){
        //找到天津这个节点
        var tj = document.getElementById('tj');
        //获取它的父节点
        var parent =document.getElementById('uls');
        //删除
        parent.removeChild(tj);
   }
}


优化:与innerHTML结合使用修改元素(更高效)


window.onload = function(){
   document.getElementById('bt5').onclick = function(){
       //创建一个li节点
       var li = document.createElement('li');
       //使用innerHTML写入文本
       li.innerHTML="江苏";
       //获取父节点
       var ul = document.getElementById('uls')
       //将设置为ul的子节点
       ul.appendChild(li);
   }
}            


完整代码


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        window.onload = function(){
            document.getElementById('bt1').onclick = function(){
                //创建一个li节点
                var addli1 = document.createElement('li');
                //创建一个城市文本节点
                var citytext = document.createTextNode('浙江');
                //将文本节点设置为li节点的字节点
                addli1.appendChild(citytext);
                //获取ul
                var ul = document.getElementById('uls');
                //将li设置为ul的子节点
                ul.appendChild(addli1);
            }
            document.getElementById('bt2').onclick = function(){
                //创建一个li节点
                var addli2 = document.createElement('li');
                //创建一个文本节点
                var citytext = document.createTextNode('四川');
                //将文本节点设置为li的子节点
                addli2.appendChild(citytext);
                //获取贵阳的li节点
                var guiyang = document.getElementById('guiyang');
                //获取ul节点
                var ul = document.getElementById('uls');
                //在贵阳之前插入li
                ul.insertBefore(addli2,guiyang);
            }
            document.getElementById('bt3').onclick = function(){
                //创建一个li节点
                var addli2 = document.createElement('li');
                //创建一个文本节点
                var citytext = document.createTextNode('江西');
                //将文本节点设置为li的子节点
                addli2.appendChild(citytext);
                //获取贵阳的li节点
                var guiyang = document.getElementById('guiyang');
                //获取ul节点
                var ul = document.getElementById('uls');
                //替换贵阳子节点
                ul.replaceChild(addli2,guiyang);
            }
            document.getElementById('bt4').onclick = function(){
                //找到天津这个节点
                var tj = document.getElementById('tj');
                //获取它的父节点
                // var parent =document.getElementById('uls');
                // //删除
                // parent.removeChild(tj);
                //另外一种方法
                tj.parentNode.removeChild(tj);
            }
            document.getElementById('bt5').onclick = function(){
                //创建一个li节点
                var li = document.createElement('li');
                //使用innerHTML写入文本
                li.innerHTML="江苏";
                //获取父节点
                var ul = document.getElementById('uls')
                //将设置为ul的子节点
                ul.appendChild(li);
            }
        }
    </script>
    <style>
        .box{
            display: inline-block;
            background-color: lightblue;
        }
        li{
            display: inline-block;
            background-color: lightgoldenrodyellow;
            margin: 10px;
        }
        .box2{
            display: inline-block;
          } 
        button{
            display: block;
        }
    </style>
</head>
<body>
    <div class="box">
        <p>常驻城市:</p>
        <ul id="uls">
            <li id="tj">天津</li>
            <li id="guiyang">贵阳</li>
            <li>重庆</li>
            <li>北京</li>
        </ul>
    </div>
    <div class="box2">
        <button id="bt1">添加一座城市</button>
        <button id="bt2">在贵阳这个城市之前加入一座城市</button>
        <button id="bt3">加一个新的城市替换贵阳</button>
        <button id="bt4">删除天津</button>
        <button id="bt5">使用innerHTML修改</button>
    </div>
</body>
</html>
目录
相关文章
|
5天前
|
JavaScript 前端开发
javascript操作BOM的方法
javascript操作BOM的方法
13 0
|
19小时前
|
JavaScript 前端开发
JavaScript 提供了多种方法来操作 DOM(文档对象模型)
【5月更文挑战第11天】JavaScript 用于DOM操作的方法包括获取元素(getElementById, getElementsByClassName等)、修改内容(innerHTML, innerText, textContent)、改变属性、添加/删除元素(appendChild, removeChild)和调整样式。此外,addEventListener用于监听事件。注意要考虑兼容性和性能当使用这些技术。
6 2
|
1天前
|
JavaScript 前端开发 UED
在 JavaScript 中,异步编程和回调函数是处理非阻塞操作(如网络请求、文件读写等)的重要工具
【5月更文挑战第10天】JavaScript中的异步编程和回调函数用于处理非阻塞操作,提高应用响应性和吞吐量。异步编程通过回调函数、Promises和async/await等方式实现,避免程序因等待操作完成而阻塞。回调函数是异步操作完成后调用的函数,常用于处理网络请求等。然而,回调函数存在嵌套问题和错误处理困难,因此出现了Promises和async/await等更优解决方案。
10 3
|
2天前
|
Web App开发 JavaScript 前端开发
javascript操作DIV总结 转
javascript操作DIV总结 转
|
5天前
|
JavaScript 前端开发 安全
javascript操作DOM的方法
javascript操作DOM的方法
11 0
|
5天前
|
JavaScript 前端开发 容器
js操作dom元素
js操作dom元素
13 0
|
12天前
|
存储 移动开发 JavaScript
学习javascript,前端知识精讲,助力你轻松掌握
学习javascript,前端知识精讲,助力你轻松掌握
|
19天前
|
JavaScript 前端开发 测试技术
学习JavaScript
【4月更文挑战第23天】学习JavaScript
13 1
|
26天前
|
JavaScript 前端开发 应用服务中间件
node.js之第一天学习
node.js之第一天学习
|
2月前
|
运维 JavaScript 前端开发
发现了一款宝藏学习项目,包含了Web全栈的知识体系,JS、Vue、React知识就靠它了!
发现了一款宝藏学习项目,包含了Web全栈的知识体系,JS、Vue、React知识就靠它了!