当前位置: 首页 > news >正文

HTML之JavaScript DOM操作元素(2)

HTML之JavaScript DOM操作元素(2)

   4.增删元素
       var element = document.createElement("元素名") 创建新元素
       父元素.appendChild(子元素)             	  	 在父元素中追加子元素
       父元素.insertBefore(新元素,参照元素)    		 在特定元素之前新增元素
       父元素.replaceChild(新元素,被替换元素)          替换特定元素
       元素.remove()                                  删除当前元素
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>小标题</title>
    <script>
        /*
        步骤:
            1.获得document DOM树
                window.document(是window的属性)
            2.从document中获取要操作的元素
                1.直接获取
                    var aaa = document.getElementById("username") // 根据元素的id值获取页面上的唯一一个元素,有同名的则返回找到的第一个
                    var bbb = document.getElementsByTagName("input")
                    var ccc = document.getElementsByName("aaa")
                    var ddd = document.getElementsByClassName("a") 
                2.间接获取
                    var cs = div01.children // 获取全部子元素
                    var firstc = div01.firstElementChild// 通过父元素获取第一个子元素
                    var lastc = div01.lastElementChild // 通过父元素获取最后一个子元素
                    var parentE = mmm.parentElement // 通过子元素获取父元素
                    var brotherPe = nnn.previousElementSibling // 获取前面的第一个元素
                    var brotherNe = nnn.nextElementSibling // 获取后面的第一个元素

            3.对元素进行操作
                1.操作元素的属性   元素名.属性名 = ""
                2.操作元素的样式   元素.style.样式名 = ""  样式名 "-" 要进行驼峰转换
                3.操作元素的文本   元素名.innerText   只识别文本
                                  元素名.innerHTML   识别文本的同时可以识别HTML代码
                4.增删元素
                    var element = document.createElement("元素名")// <li></li>
                    父元素.appendChild(子元素)             在父元素中追加子元素
                    父元素.insertBefore(新元素,参照元素)    在特定元素之前新增元素
                    父元素.replaceChild(新元素,被替换元素)  替换特定元素
                    元素.remove()                          删除当前元素
        */
        // 目标1 追加元素
        function addCs() {
            // 1.创建元素
            var newli = document.createElement("li")// <li></li>
            // 2.设置元素的属性和文本
            newli.id = "cs" //<li id = "cs"></li>
            newli.innerText = "长沙"//<li id = "cs">长沙</li>
            // 3.将元素作为子元素放入父元素中
            var parentE = document.getElementById("ul01")
            parentE.appendChild(newli)// 在父元素中追加子元素
        }
        // 目标2 特定位置追加元素
        function addBefore() {
            // 1.创建元素
            var newli = document.createElement("li")// <li></li>
            // 2.设置元素的属性和文本
            newli.id = "cs" //<li id = "cs"></li>
            newli.innerText = "长沙"//<li id = "cs">长沙</li>
            // 3.将元素作为子元素放入父元素中
            var parentE = document.getElementById("ul01")
            var brotherNe = document.getElementById("sz")
            //parentE.insertBefore(新元素,参照元素) 在特定元素之前新增元素
            parentE.insertBefore(newli, brotherNe)
        }
        // 目标3 替换元素
        function replaceSz() {
            // 1.创建元素
            var newli = document.createElement("li")// <li></li>
            // 2.设置元素的属性和文本
            newli.id = "cs" //<li id = "cs"></li>
            newli.innerText = "长沙"//<li id = "cs">长沙</li>
            // 3.元素替换
            var parentE = document.getElementById("ul01")
            var brotherNe = document.getElementById("sz")
            //parentE.replaceChild(新元素,被替换元素) 替换特定元素
            parentE.replaceChild(newli, brotherNe)
        }
        // 目标4 移除特定元素
        function removeSz() {
            // 哪个元素调用remove 就会执行删除哪个元素
            var brotherNe = document.getElementById("sz")
            brotherNe.remove(brotherNe)
        }
        // 目标5 清空列表元素
        function removeAll(){
            // 思路1 获取父元素,然后根据父元素获取父元素的第一个子元素,循环删除父元素的第一个子元素,直到为null,就相当于链表删除
            var dom1 = document.getElementById("ul01")
            var node = dom1.firstChild
            while(node!=null){
                node.remove()
                node = dom1.firstChild
            }
            // 思路2 要清空列表,就是要清空ul里面的东西,可以用标签中间夹文本的思路,直接清空ul标签中间的东西
            var dom2 = document.getElementById("ul01")
            dom2.innerHTML = ""   // innerHTML 与 innerText均可

        }
    </script>
</head>

<body>
    <ul id="ul01">
        <li id="bj">北京</li>
        <li id="sh">上海</li>
        <li id="sz">深圳</li>
        <li id="gz">广州</li>
    </ul>
    <!-- 目标1 在城市列表的最后添加子标签 长沙 -->
    <button id="btn01" onclick="addCs()"> 增加长沙</button>
    <!-- 目标2 在城市列表深圳前增加子标签 长沙 -->
    <button id="btn02" onclick="addBefore()"> 在深圳前增加长沙</button>
    <!-- 目标3 替换目标元素 替换深圳为长沙 -->
    <button id="btn03" onclick="replaceSz()"> 替换深圳为长沙</button>
    <!-- 目标4 删除,删除深圳 -->
    <button id="btn04" onclick="removeSz()"> 移除深圳</button>
        <!-- 目标5 清空列表 -->
    <button id="btn05" onclick="removeAll()"> 清空列表</button>
</body>

</html>

相关文章:

  • 【Opensim】软件显示问题(比例不对,按键遮挡,显示不完整)
  • 深入浅出MySQL:概述与体系结构解析
  • DBAPI如何优雅的实现分页查询功能
  • 根据音频中的不同讲述人声音进行分离音频 | 基于ai的说话人声音分离项目
  • Python|OpenCV-实现人物眨眼检测(21)
  • 【Linux基础】Shell脚本
  • 常用的几种编码方式
  • c++———————————————c++11
  • 通俗理解嵌入式
  • 本地部署AI模型 --- DeepSeek(一)
  • 计算机网络基础:DOS命令、批处理脚本常见命令
  • Linux动静态库
  • *PyCharm 安装教程
  • for循环可遍历但不可以修改列表原因分析
  • 集成开发环境GoLand安装配置结合内网穿透实现ssh远程访问服务器
  • 18-除自身以外数组的乘积
  • P8716 [蓝桥杯 2020 省 AB2] 回文日期
  • 力扣-贪心-45 跳跃游戏
  • 【分布式数据一致性算法】Gossip协议详解
  • 【Rust中级教程】2.7. API设计原则之灵活性(flexible) Pt.3:借用 vs. 拥有、`Cow`类型、可失败和阻塞的析构函数及解决办法
  • 澎湃读报丨解放日报9个版聚焦:上海,加快建成具有全球影响力的科技创新高地
  • 辽宁省委书记郝鹏、省长王新伟赶到辽阳火灾事故现场指导善后处置工作
  • 人社部:一季度全国城镇新增就业308万人,同比增加5万人
  • 一位排球青训教练的20年时光:努力提高女排球员成才率
  • 王毅出席金砖国家外长会晤
  • 牛市早报|国家发改委:将推出做好稳就业稳经济推动高质量发展若干举措