添加、删除、替换、查找到某个DOM节点的方法?

一、DOM添加节点

  • innerHTML新增DOM节点

  • 创建一个文本节点 createTextNode() 创建标签节点 createElement( ) 插入 : 在最后面插入 appendChild() 在指定的元素前面插入 insertBefore(要插入的元素 , 指定的元素)

HTML代码(index.html):

js 复制代码
<!DOCTYPE html>
<html>

<head>
    <title>新增DOM方法示例</title>
    <style>
        .new-element {
            color: blue;
        }
    </style>
</head>

<body>
    <h1>欢迎来到我的网站</h1>
    <div id="content">
        <p>这是一段内容。</p>
    </div>
    <button id="addButton">添加元素</button>
    <script src="index.js"></script>
</body>

</html>

JavaScript代码(index.js):

js 复制代码
document.addEventListener("DOMContentLoaded", function () {
    var addButton = document.getElementById("addButton");
    addButton.addEventListener("click", function () {
        // 创建一个新的段落元素节点  
        var newParagraph = document.createElement("p");

        // 将新段落添加到id为"content"的div元素的末尾  
        var contentDiv = document.getElementById("content");
        contentDiv.appendChild(newParagraph);

        // 在新段落之前插入一个新的div元素节点  
        var newDiv = document.createElement("div");
        newDiv.className = "new-element";
        newDiv.innerHTML = "这是一个新插入的div元素。";
        contentDiv.insertBefore(newDiv, newParagraph);

        // 将新段落替换为一个新的h2元素节点  
        var newH2 = document.createElement("h2");
        newH2.innerHTML = "标题已更改";
        contentDiv.replaceChild(newH2, newParagraph);
    });
});

这个例子中,我们首先在HTML中定义了一个按钮和一个包含一段内容的div元素。然后,在JavaScript代码中,我们为按钮添加了一个点击事件监听器。当按钮被点击时,我们使用新增的DOM方法创建了一个新的p元素节点,并添加了文本内容。然后,我们将新段落添加到div元素的子节点列表的末尾,并在新段落之前插入了一个新的div元素节点。最后,我们将新段落替换为一个新的h2元素节点。通过这些新增的DOM方法,我们可以更方便地操作和修改DOM结构。

二、DOM删除节点

  1. remove( ) 删除自己和所有的子元素
  2. removeChild( ) 删除指定的子元素,只能删除儿子,不能删除孙子
  3. innerHTML = ' ' 删除所有的子元素

举个例子:

js 复制代码
<!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>
</head>
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>删除DOM节点示例</title>
    <style>
        #myDiv {
            padding: 20px;
            background-color: lightblue;
        }
    </style>
</head>

<body>
    <div id="parentDiv">
        <div id="myDiv">我是一个div</div>
    </div>
    <button onclick="deleteDiv()">删除div</button>

    <script>
        function deleteDiv() {
            var parentDiv = document.getElementById("parentDiv");
            var myDiv = document.getElementById("myDiv");
            parentDiv.removeChild(myDiv);
        }  
    </script>
</body>

</html>

</html>

下面这段代码创建了一个简单的网页,其中包含一个父div元素和一个子div元素。用户可以通过点击"删除div"按钮来删除子div元素。

三、DOM替换节点

替换子元素 replaceChild(new , old)

js 复制代码
<!DOCTYPE html>
<html>

<head>
    <title>DOM节点替换示例</title>
    <style>
        .new-node {
            color: red;
            font-size: 20px;
        }
    </style>
</head>

<body>
    <div id="old-node">旧节点</div>
    <button onclick="replaceNode()">替换节点</button>
    <script>
        function replaceNode() {
            // 获取要被替换的旧节点  
            var oldNode = document.getElementById('old-node');
            // 创建新节点  
            var newNode = document.createElement('div');
            newNode.innerHTML = '新节点';
            newNode.className = 'new-node'; // 为新节点添加样式类  
            // 替换旧节点  
            oldNode.parentNode.replaceChild(newNode, oldNode);
        }
    </script>
</body>

</html>

以上这个例子中,我们首先在HTML中定义了一个旧节点和一个按钮。当用户点击按钮时,replaceNode函数会被调用。这个函数首先获取旧节点,然后创建一个新节点,并为其添加样式类。最后,使用replaceChild方法将旧节点替换为新节点。

四、查找DOM节点

查找当前元素的父级元素节点:parentNode

js 复制代码
<!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>
</head>

<body>

    <ul>
        <li>
            <p>11</p>
            <button>111</button>
        </li>
        <li>
            <p>22</p>
            <button>222</button>
        </li>
        <li>
            <p>33</p>
            <button>333</button>
        </li>
    </ul>

    <script>

        // 找父元素   parentNode

        var oBtns = document.querySelectorAll('button');
        for (var i = 0; i < oBtns.length; i++) {
            oBtns[i].onclick = function () {
                console.log(this.parentNode); //找到当前点击对象的父元素,当前点击对象是button,父元素为li

            }
        }

    </script>

</body>

</html>
相关推荐
q***47184 小时前
解决 Tomcat 跨域问题 - Tomcat 配置静态文件和 Java Web 服务(Spring MVC Springboot)同时允许跨域
java·前端·spring
小光学长4 小时前
基于Web的课前问题导入系统pn8lj4ii(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
java·前端·数据库
Mintopia4 小时前
🌐 跨模态迁移学习:WebAIGC多场景适配的未来技术核心
前端·javascript·aigc
JarvanMo4 小时前
使用 MediaPipe 在 Flutter web 中识别姿势
前端
saadiya~4 小时前
基于 Vue3 封装大华 RTSP 回放视频组件(PlayerControl.js 实现)
前端·vue3·大华视频相机前端播放
LSL666_4 小时前
spring多配置文件
java·服务器·前端·spring
万少5 小时前
HarmonyOS preview 预览文件 Kit 的入门讲解
前端
IT_陈寒5 小时前
JavaScript 性能优化实战:我从 V8 源码中学到的 7 个关键技巧
前端·人工智能·后端
jenchoi4135 小时前
软件供应链npm/pypi投毒预警情报【2025-11-09】
前端·安全·web安全·网络安全·npm·node.js
艾小码5 小时前
别再只会用默认插槽了!Vue插槽这些高级用法让你的组件更强大
前端·javascript·vue.js