JS-day07

目录

01-DOM

02-获取DOM节点

03-修改节点内容

04-修改css样式

05-修改属性

06-修改样式的方法

07-操作HTML元素

08-根据节点之间关系获取元素

09-总结

10-单击事件

11-取input输入框中的内容

12-旗帜法则


01-DOM

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // DOM document object model    文档对象模型
    </script>
</body>

</html>

02-获取DOM节点

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>DOM操作</title>
</head>
<body>
    <div id="today" class="box">今天还算比较凉快</div>

    <div class="box">hello</div>

    <div class="box">world</div>

    <script>
        // 获取的元素都属于 DOM 对象
        // 1.根据ID获取元素
        var today = document.getElementById("today");
        console.log(today);
        console.dir(today);
        console.log(today.innerHTML);

        // 2.根据class类名获取元素  伪数组
        var box = document.getElementsByClassName("box")[1];
        console.log(box);

        // 3.根据标签名获取元素
        var item = document.getElementsByTagName("div")[2];
        console.log(item);

        // 获取特殊节点
        var doc = document.documentElement;
        console.log(doc);

        // 获取 body 
        var body = document.body;
        console.log(body);

        // 获取 title 
        var tit = document.title;
        console.log(tit);
    </script>
</body>
</html>

03-修改节点内容

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div class="box">台风格美已登陆台湾</div>

    <script>
        // 获取元素
        var box = document.getElementsByClassName("box")[0];
        console.log(box);

        // 1.innerHTML 可以识别标签
        console.log(box.innerHTML);
        // box.innerHTML = "格美掉头";
        box.innerHTML = "<b>格美掉头</b>";

        // 2.innerText  不可以识别标签
        // box.innerText = "超强台风";
        box.innerText = "<b>超强台风</b>";
    </script>
</body>

</html>

04-修改css样式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <style>
        .box{
            color: red;
            /* font-size:; */
        }
    </style>
</head>
<body>
    <div class="box">台风格美已登陆台湾</div>

    <script>
        // 获取元素
        var box = document.getElementsByClassName("box")[0];

        // 修改样式
        box.style.color = "green";

        box.style.fontSize = "30px";

        box.style.fontWeight = "800";
    </script>
</body>
</html>

05-修改属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div class="box" title="文本" id="windy">台风格美已登陆台湾</div>

    <img src="https://q0.itc.cn/images01/20240718/8afcbe14d217453fa5f465eb8d7f0fef.png" alt="">

    <script>
        // 获取元素
        var box = document.getElementsByClassName("box")[0];

        // 1.通过 . 形式修改属性
        box.title = "修改后的文本";
        // 修改类名 className 
        box.className = "pox box";
        box.id = "hot";

        var pic = document.getElementsByTagName("img")[0];

        pic.src = "https://img1.baidu.com/it/u=1567632714,3605840724&fm=253&fmt=auto&app=138&f=JPEG?w=475&h=475";

        // 2.setAttribute() 设置属性
        pic.setAttribute("title","头像");
        pic.setAttribute("class","boy blue");
        
        // getAttribute() 获取属性
        console.log(pic.getAttribute("src"));
        // console.log(pic.src);

        // removeAttribute() 删除属性
        pic.removeAttribute("alt");
    </script>
</body>
</html>

06-修改样式的方法

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <style>
        .box {
            width: 200px;
            height: 200px;
        }

        .title {
            width: 300px;
            font-size: 30px;
            font-weight: 800;
            background-color: pink;
        }
    </style>
</head>

<body>
    <div class="box">台风格美已登陆台湾</div>

    <script>
        var box = document.getElementsByClassName("box")[0];

        box.style.color = "red";

        // 操作属性
        // box.className = "box title";

        box.setAttribute("class", "box title");
    </script>
</body>

</html>

07-操作HTML元素

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <div class="father">
        <div class="son1">son1</div>
        <div class="son2">son2</div>
    </div>

    <script>
        var father = document.getElementsByClassName("father")[0];
        var son2 = document.getElementsByClassName("son2")[0];
        // 1.写入到文档
        // document.write("abc");

        // 2.新建节点
        var box = document.createElement("div");
        console.log(box);

        // 3.新建文本节点
        var text = document.createTextNode("hello world");
        console.log(text);

        // 4.追加节点
        box.appendChild(text);
        console.log(box);

        father.appendChild(box);
        // console.log(father);

        // 5.插入节点 往谁里面插入,插入什么东西,插入到谁之前
        // insertBefore  insertAfter ×
        // father.insertBefore(box, son2);

        // 6.替换节点 谁里面需要替换,用谁替换,替换掉谁
        // father.replaceChild(box, son2); // 替换掉儿子2

        // 7.删除节点   removeChild 删除子节点
        // father.removeChild(son2);

        // 删除自身节点  remove
        // father.remove();

        // 8.克隆节点  true 深度拷贝
        var clone = father.cloneNode(true);
        console.log(clone);
    </script>
</body>

</html>

08-根据节点之间关系获取元素

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <div class="father">

        <div class="son"></div>

        <div class="son1"></div>

        <div class="son2"></div>

    </div>

    <script>
        var son1 = document.getElementsByClassName("son1")[0];
        var father = document.getElementsByClassName("father")[0];


        console.log(son1);

        // 获取父节点
        console.log(son1.parentNode);

        // 获取兄弟节点
        // nextSibling  (幽灵节点)
        console.log(son1.nextSibling);

        // nextElementSibling
        console.log(son1.nextElementSibling);

        console.log(son1.previousSibling);

        console.log(son1.previousElementSibling);

        // 获取子节点
        console.log(father.firstChild);
        console.log(father.firstElementChild);
        console.log(father.lastChild);
        console.log(father.lastElementChild);

        // 获取所有子节点
        console.log(father.childNodes);
        console.log(father.children);
    </script>
</body>

</html>

09-总结

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // DOM 操作
        // 1.获取元素
        // 2.修改 内容 样式 属性 (class)
        // 3.操作HTML元素 写入文档 新建节点 新建文本节点 追加节点 插入节点 替换节点 删除节点 删除自身节点 克隆节点
        // 4.根据节点关系获取节点 (长的是获取真正节点的)
    </script>
</body>
</html>

10-单击事件

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <style>
        div {
            width: 100px;
            height: 60px;
            text-align: center;
            line-height: 60px;
            border: 1px solid #000;
        }
    </style>
</head>

<body>
    <div>黑色</div>
    <div>白色</div>

    <div class="box"></div>

    <script>
        // 绑定单击事件
        var box1 = document.getElementsByTagName("div")[0];
        var box2 = document.getElementsByTagName("div")[1];
        var box3 = document.getElementsByTagName("div")[2];

        // 单击事件  onclick 
        box1.onclick = function () {
            console.log("点我干啥?");
            box3.style.backgroundColor = "black";
        }

        box2.onclick = function () {
            console.log("点我干啥?");
            box3.style.backgroundColor = "white";
        }

        // 随机色  rgb(255,0,0);

        // num1 num2 num3
        // backgroundColor = "rgb(" + num1 + "," + num2 + "," + num3 + ")"
    </script>
</body>

</html>

11-取input输入框中的内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <input type="text" value="">
    <button>获取</button>
    <script>
        // 1.获取元素
        var inp = document.getElementsByTagName("input")[0];
        var btn = document.getElementsByTagName("button")[0];

        btn.onclick = function(){
            console.log(inp.value);
        }
    </script>
</body>
</html>

12-旗帜法则

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <img src="../作业/作业3-发布聊天/images/1.png" alt="">

    <script>
        var pic = document.getElementsByTagName("img")[0];

        var flag = true;

        // 对应关系: 当时1.png时, flag=true  当是 2.png时,flag = false

        pic.onclick = function () {
            // 每次点击后 改变 flag 标记
            flag = !flag;
            // pic.src = "../作业/作业3-发布聊天/images/2.png";
            if (flag) {
                pic.src = "../作业/作业3-发布聊天/images/1.png";
               
            } else {
                pic.src = "../作业/作业3-发布聊天/images/2.png";
            }
        }
    </script>
</body>

</html>

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值