克隆和删除节点

151 阅读1分钟

父元素.removeChild(要被删除的元素)

A.appendChild( B) 把B节点追加至A节点的末尾

cloneNode(deep) 复制某个指定的节点

<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>
    <div onclick="cloneNd()" class="div-class">我是div1</div>
    <button onclick="rm()">删除第一个</button>
    <script>
        function rm(){
            let body = document.getElementsByTagName('body')[0];
            let div1 = document.getElementsByClassName('div-class')[0];
            /* 父元素.removeChild(要被删除的元素) */
            body.removeChild(div1)
        }
        function cloneNd(){
            let body = document.getElementsByTagName('body')[0];
            // let div1 = document.createElement('div')
            // let text = document.createTextNode('我是div1')
            // div1.appendChild(text);
            // body.appendChild(div1);
            /* cloneNode(deep)	 复制某个指定的节点 */
            let div1 = document.getElementsByClassName('div-class')[0];
            console.log(div1);
            /* 获取自己的元素 再插入到body中是可以的,
            但是插入的时候发现 都一个元素节点

            两种插入的实现方式 第一种创建新的节点去插入 
            第二种 clone出一个新的节点去插入*/

            /* cloneNode如果里面不传true 表示传入自身节点(不包括子节点)
            传true 表示 既克隆自身节点 也克隆了自身的子节点 */
            let divClone = div1.cloneNode(true);
            // console.log(divClone);
            let text1 = document.createTextNode('=')
            divClone.appendChild(text1)
            body.insertBefore(divClone,div1)
            // body.appendChild(divClone);
        }
        /* 写一个h1 标签 内容是我是h1 点击h1 可以克隆自己 
        可以把克隆出来的 文本内容 再加个 字符串 "=" 放在原来的h1的前面  */
    </script>
</body>
</html>
    <button onclick="addDiv()" id="btn1">创建一个div</button>
    <button onclick="addDiv()" id="btn1">创建一个div</button>
    <!-- <div>我是div</div> -->
    <script>
        function addDiv() {
            /* document.createElement("元素名")	创建元素节点 */
            let div1 = document.createElement('div');
            // console.log(div1);
            /* document.createTextNode("文本")	  创建文本节点 */
            let divText = document.createTextNode('我是div');
            // console.log(divText);
            /* A.appendChild( B)	 把B节点追加至A节点的末尾 */
            div1.appendChild(divText)
            // console.log(div1);
            let body = document.querySelector('body');
            body.appendChild(div1)

            /* 父节点.insertBefore( A,B )	 把A节点插入到B节点之前 */
            let gege = document.createElement('button');
            let btnText = document.createTextNode('btn的哥哥');
            gege.appendChild(btnText)
            
            let didi = document.getElementById('btn1');
            body.insertBefore(gege,didi)
            /* 创建一个h1 我是h1 插入到 btn的前面 */
        }

    </script>
</body>