JavaScript——DOM节点动态操作


0.前言

上一节把每个的节点操作都演示一遍,可累死我了,今天就不一一演示了,直接上代码,注释在代码里,写的很详细。至于运行效果,大家就自己复制粘贴吧,抱歉啊!!!

1.正文

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>DOM节点动态操作</title>
    <style type="text/css">
        #box{
            width: 300px;
            height: 300px;
            background-color: yellow;
        }
        #box1{
            width: 100px;
            height: 100px;
            background-color: red;
        }
        #box2{
            width: 50px;
            height: 50px;
            background-color: blue;
        }
    </style>
</head>
<body>
    <div id="box">
        <p>1</p>
        <p>2</p>
    </div>
    <script type="text/javascript">
        
        //创建元素节点
        var jsDiv = document.createElement("div");
        jsDiv.id = "box1";
        console.log(jsDiv);

        
        //添加子节点(这个是添加到最后)
        //document.body === body标签 === body元素节点
        //公式:元素节点(parentNode).appendChild(childNode)
        //功能:在parentNode节点的所有子节点后面添加一个子节点
        document.body.appendChild(jsDiv);


        //添加子节点(这个是添加到指定位置)
        //公式:元素节点(parentNode).insertBefore(newdNode,currentNode);
        var jsDiv2 = document.createElement("div");
        jsDiv2.id = "box2"
        // document.body.insertBefore(jsDiv2,jsDiv);
        jsDiv.parentNode.insertBefore(jsDiv2,jsDiv); //推荐使用这个方法。


        //创建文本节点
        var textNode = document.createTextNode("lsls");
        
        //添加文本节点
        var jsDivBox1 = document.getElementById("box");
        var allNodes = jsDivBox1.childNodes; //所有子节点
        var p = allNodes[1];
        p.appendChild(textNode);
        console.log(allNodes);


        //替换节点
        //公式:旧节点的父节点.replaceNode(新节点,旧节点);
        //注意:下面的语句会将p在jsDivBox1里面移除
        // document.body.replaceChild(p,jsDiv2);
        var newDiv = document.createElement("div");
        newDiv.style.width = "100px";
        newDiv.style.height = "100px";
        newDiv.style.backgroundColor = "blue";
        jsDiv2.parentNode.replaceChild(newDiv,jsDiv2);




        //复制节点
        //只复制标签本身,不包含子节点
        var con1 = jsDivBox1.cloneNode();
        console.log(con1);
        //包含了所有的后代节点
        var con2 = jsDivBox1.cloneNode(true);
        console.log(con2);




        //删除节点
        //公式:待删除节点.removeChild(待删除节点)
        newDiv.parentNode.removeChild(newDiv);



        //offsetParent(参照父元素)
        console.log(p.offsetLeft);
        var ofP = p.offsetParent;
        console.log(ofP);
    </script>
</body>
</html>
offsetParent.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,231评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,661评论 19 139
  • 雨过天晴。大概是哪位上神来此渡劫,又或者是我想的那个人也在想我吧。临窗听雨,遥念君安。 你在,该多好。 【另:图片...
    十二同学阅读 148评论 0 1
  • 我的小房间 零乱又温暖 她就紧靠在 厅房的右边 深褐色的立柜里面 旧衣物挂得满满 暗红色书桌的抽屉中 锁满了浪漫的...
    画府王爷阅读 1,373评论 4 6

友情链接更多精彩内容