美文网首页
JS第七天-03

JS第七天-03

作者: knot98 | 来源:发表于2018-10-19 21:44 被阅读0次

DOM

DOM树结构关系代码示例:

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>DOM树结构关系</title>
</head>
<body>
    <div class="sup">
        <div class="sub1"></div>
        <div class="sub2"></div>
        <div class="sub3"></div>
    </div>
</body>
<script type="text/javascript">
    var body = document.querySelector('body');
    console.log(body);
</script>

<script>
    var sub2 = document.querySelector('.sub2');
    // 父级标签
    console.log("sub2父标签:", sub2.parentElement);
    // 上一个标签
    console.log("sub2上兄弟标签:", sub2.previousElementSibling);
    // 下一个标签
    console.log("sub2下兄弟标签:", sub2.nextElementSibling);

    var sup = document.querySelector('.sup');
    // 所有子标签
    console.log("sup子标签们:", sup.children);
    // 第一个子标签
    console.log("sup第一个子标签:", sup.firstElementChild);
    // 最后一个子标签
    console.log("sup最后一个子标签:", sup.lastElementChild);
</script>

</html>

一、JS中标签关系

<div class="sup">
    <div class="sub1"></div>
    <div class="sub2"></div>
    <div class="sub3"></div>
</div>

<script>
    var sub2 = document.querySelector('.sub2');
    // 父级标签
    console.log(sub2.parentElement);
    // 上一个标签
    console.log(sub2.previousElementSibling);
    // 下一个标签
    console.log(sub2.nextElementSibling);

    var sup = document.querySelector('.sup');
    // 所有子标签
    console.log(sup.children);
    // 第一个子标签
    console.log(sup.firstElementChild);
    // 最后一个子标签
    console.log(sup.lastElementChild);
</script>

二、JS操作页面标签

// 创建一个div标签
var div = document.createElement("div");
// 添加到body末尾,返回自身
div = body.appendChild(div);
// 插入到body中box标签前,返回自身
div = body.insertBefore(div, box);
// 替换掉body中box标签,返回box
box = body.replaceChild(div, box);
// 在body中移除div,返回自身
div = body.removeChild(div);

三、JS操作DOM一般步骤

1、创建标签

2、设置标签样式文本

3、添加到页面指定位置

四、DOM操作

代码示例:

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>DOM操作</title>
    <style type="text/css">
        .box {
            width: 200px;
            height: 200px;
            background-color: red;
        }
        .p {
            width: 100px;
            height: 100px;
            background-color: orange;
        }
    </style>
</head>
<body>
    <div class="box">box box box bi box</div>
    <button class="b1">添加到box中</button>
    <button class="b2">添加到body中</button>
    <button class="b3">插到body下box之前</button>
    <button class="b4">将body下box替换为p</button>
    <button class="b5">删除box</button>
</body>
<script type="text/javascript">
    var body = document.querySelector('body');
    var box = document.querySelector('.box');
    var b1 = document.querySelector('.b1');
    var b2 = document.querySelector('.b2');
    var b3 = document.querySelector('.b3');
    var b4 = document.querySelector('.b4');
    var b5 = document.querySelector('.b5');

    // 创建标签p
    var p = document.createElement('p');
    console.log(p);

    // 设置标签样式
    p.className = 'p';

    // 添加到指定区域
    b1.onclick = function () {
        var res = box.appendChild(p);
        console.log(res); // 自身
    }
    b2.onclick = function () {
        body.appendChild(p);
    }

    // 总结:
    // 1.创建标签只能由document来调用执行
    // 2.一次创建只产生一个标签对象,该标签对象只能存在最后一次操作的位置


    // 插入到指定区域
    b3.onclick = function () {
        // 将p插到box之前(前者插入到后者之前)
        var res = body.insertBefore(p, box);
        console.log(res);  // 自身
        // box和p都是body的一级子标签后,顺序有需求决定
        // body.insertBefore(box, p);
    }

    b4.onclick = function () {
        // 将p替换掉box(前者替换后者)
        var res = body.replaceChild(p, box);
        console.log(res); // box
    }

    b5.onclick = function () {
        // 由父级删除指定子级
        // var res = body.removeChild(box);
        // 获取父级来删除自身
        var res = box.parentElement.removeChild(box);
        
        console.log(res); // box
        setTimeout(function () {
            // 删除后,标签对象依然可以被js保存,继而可以重新添加到页面
            body.appendChild(res);
        }, 1000)
    }

</script>
</html>

相关文章

  • node.js 学习三 之 调用模块

    路径: User.js Teacher.js 03_modelcall.js

  • nodeJs创建服务器

    03--http.js

  • JS第七天-03

    DOM DOM树结构关系代码示例: 一、JS中标签关系 二、JS操作页面标签 三、JS操作DOM一般步骤 1、创建...

  • SCP-JS-03-J秀儿联盟

    项目编号:SCP-JS-03-J 项目等级:KETER 特殊收容措施:SCP-JS-03-J经常出现在「」「」浏览...

  • go--存入mongo数据库中ISODate的问题

    golang的时间格式和js是不一致的js中 new Date()方法"time": "2023-01-03T03...

  • 正则初解

    title: js验证常用正则表达式date: 2017-03-03 验证 正则表达式 本文介绍js验证常用的正则...

  • DOM(一)

    第七天 03-对象模型-第01天{DOM、常用属性} 第七天DOM相关概念什么是DOMDOM内容概念DOM操作获取...

  • 路由中间件

    03-路由的使用.js /router/user.js 启动服务器: 发送请求:

  • js作用域

    title: js作用域详解date: 2019-03-15 09:45:23tags: js 变量作用域 js中...

  • JavaScript30 Day 7

    这是我在github 上发现的一个原生js挑战项目,由于是js小白,希望通过这次的项目加深对js的理解 第七天跟第...

网友评论

      本文标题:JS第七天-03

      本文链接:https://www.haomeiwen.com/subject/ywnuzftx.html