当前位置: 首页 > article >正文

【dom操作基础】案例题1

一、选择元素

使用getElementById、getElementsByClassName、querySeletor选择元素

<body>
    <div id="fatherId" class="falther">
        father内容
        <div class="child">1</div>
        <div class="child2">2</div>
        <div class="child">3</div>
        <div class="child">4</div>
    </div>
</body>
 // 1、ID获取:document.getElementById获取具有指定id属性的元素(ID唯一)
    var element_id = document.getElementById("fatherId")
    console.log(element_id);
    // 2、className获取:document.getElementsByTagName获取指定标签的所有元素的节点列表
    var element_div = document.getElementsByTagName("div")
    console.log(element_div);
    // 3、标签名获取:document.getElementsByClassName获取指定类名的所有元素列表
    var element_class = document.getElementsByClassName("child")
    console.log(element_class);

二、修改元素

1、写一个修改页面中p标签的内容为“Hello,World!”的函数。
2、写一个在页面中div标签添加类名为".active"的函数。
3、写一个在页面中h1标签移除类名为".title"的函数。

<body>
    <p>pppppp</p>
    <div>-----</div>
    <p>pppppp</p>
    <div>-----</div>
    <p>pppppp</p>
    <div>-----</div>
    <p>pppppp</p>
    <div>-----</div>
    <h1 class="title">标题</h1>
    <h1 class="title">标题</h1>
    <h1 class="title">标题</h1>
    <button onclick="changP()">修改p元素内容</button>
    <button onclick="addClassName()">添加类名到div元素</button>
    <button onclick="removeClassName()">移除类名到div元素</button>
</body>
<script>
    // 1、写一个修改页面中<p>元素的内容为“Hello,World!”的函数。
    function changP() {
        let domPAll = document.getElementsByTagName('p')
        for (let dom of domPAll) {
            dom.innerHTML = "Hello,World"
        }
    }
    // 2、写一个在页面中<div>元素添加类名为".active"的函数。
    function addClassName(){
        let domDivAll = document.getElementsByTagName('div')
        for (const element of domDivAll) {
            element.classList.add('active')
        }
    }
    // 2、写一个在页面中<h1>元素移除类名为".title"的函数。
    function removeClassName(){
        let domH1 = document.getElementsByTagName('h1')
        for (const element of domH1) {
            element.classList.remove('title')
        }
    }
</script>

三、事件处理

1、点击按钮,弹框提示
2、 鼠标移入方块显示红色,鼠标移出方块显示绿色
3、事件冒泡
4、事件捕获

1、点击按钮,弹框提示

<style>
        .box{
            width: 200px;
            height: 200px;
            background-color: yellow;
            text-align: center;
            line-height: 200px;
        }
    </style>

2、 鼠标移入方块显示红色,鼠标移出方块显示绿色

<body>
    <button onclick="clickFunc()">点击</button>
    <div class="box" onmouseover="changeRed()" onmouseout="changeGreen()">方块</div>
</body>
<script>
    // 1、点击按钮,弹框提示
    function clickFunc(){
        alert("Hello World")
    }
    //2、 鼠标移入方块显示红色,鼠标移出方块显示绿色
    function changeRed(){
        document.querySelector(".box").style.backgroundColor = "red"
    }
    function changeGreen(){
        document.querySelector(".box").style.backgroundColor = "green"
    }
</script>

3、事件冒泡

<body>
    <div class="father">
        <div class="child">1</div>
        <div class="child">1</div>
        <div class="child">1</div>
    </div>
</body>
<script>
    document.querySelector(".father").onclick = function () {
        console.log("父级被点击");

    }
    let children = document.querySelectorAll(".child")
    for (const element of children) {
        element.onclick = function () {
            console.log("子元素被点击");
        }
    }
    /* 事件冒泡:当在一个元素上触发某个事件后,
    这个事件会逐级向上传递到该元素的父元素,直至传递到文档的根元素(document)。
    如上案例中我点击子元素child触发father事件
    */
</script>

4、事件捕获

<body>
    <div class="father">
        <div class="child">1</div>
        <div class="child">1</div>
        <div class="child">1</div>
    </div>
</body>
<script>
    document.querySelector(".father").onclick = function () {
        console.log("父级被点击");

    }
    let children = document.querySelectorAll(".child")
    for (const element of children) {
        element.onclick = function () {
            console.log("子元素被点击");
        }
    }
    /* 事件冒泡:当在一个元素上触发某个事件后,
    这个事件会逐级向上传递到该元素的父元素,直至传递到文档的根元素(document)。
    如上案例中我点击子元素child触发father事件
    */
</script>

四、创建、删除元素

1、在ul元素里新增li元素
2、删除页面第一个p元素

<body>
    <ul>
        <li>1</li>
    </ul>
    <button onclick="addLi()">新增li元素</button>
    <p>11</p>
    <p>11</p>
    <p>11</p>
    <p>11</p>
    <p>11</p>
    <button onclick="deleteP()">删除第一个p元素</button>
</body>
<script>
    function addLi() {
        // 创建li元素
        let li = document.createElement('li')
        li.innerText = "2"
        // ul元素新增li元素
        document.querySelector('ul').appendChild(li)
    }
    function deleteP(){
        let pAll = document.querySelectorAll('p')
        document.body.removeChild(pAll[0])
    }

</script>

五、样式操作

1、设置一个把页面所有h1元素文字变成红色的函数
2、设置一个把img元素都隐藏的函数

    <h1>标题1</h1>
    <h1>标题1</h1>
    <h1>标题1</h1>
    <h1>标题1</h1>
    <h1>标题1</h1>
    <button οnclick="changeColor()">改变全部h1颜色</button>
    <img src="https://so2.360tres.com/dmfd/400_300_/t0110e5ad0726405f0e.jpg" alt="">
    <img src="https://so2.360tres.com/dmfd/400_300_/t0110e5ad0726405f0e.jpg" alt="">
    <img src="https://so2.360tres.com/dmfd/400_300_/t0110e5ad0726405f0e.jpg" alt="">
    <button οnclick="hideImg()">隐藏所有图片</button>
</body>
<script>
    function changeColor() {
        let h1All = document.querySelectorAll("h1")
        for (const element of h1All) {
            element.style.color = 'red'
        }
    }
    function hideImg(){
        let imgAll = document.querySelectorAll("img")
        for (const element of imgAll) {
            element.style.display ='none'
        }
    }
</script>

http://www.kler.cn/news/316189.html

相关文章:

  • Ubuntu24.04中安装Electron
  • 8. 防火墙
  • JAVA并发编程系列(8)CountDownLatch核心原理
  • 基于等保2.0标准——区块链安全扩展要求探讨
  • git 介绍+常用命令
  • LeetCode 2374.边积分最高的节点:模拟
  • Git 推送更改到远程仓库
  • 什么是量化交易,纸质股票现在还能交易吗?怎么交易
  • 基于机器学习的注意力缺陷/多动障碍 (ADHD)(python论文+代码)HYPERAKTIV
  • 路径处理 | 关键点提取之Douglas–Peucker算法(附ROS C++/Python实现)
  • 分布式锁的几种方案对比?你了解多少种呢?
  • vscode关闭git的提交提示
  • 【计算机网络篇】数据链路层 功能|组帧|流量控制与可靠传输机制
  • 视频理解大模型最新进展
  • python定时发送邮件的功能如何实现自动化?
  • 使用库函数点亮一个LED灯
  • Python知识点:如何使用Python进行医学图像处理
  • javase笔记4----常用类型
  • 怎么使用Chrome与C++实现高效自动化测试
  • 软件架构的演变与趋势(软件架构演变的阶段、综合案例分析:在线电商平台架构演变、开发补充)
  • lora 微调3B模型微调前有5G 量化f16 后最后导出模型容量变小了只有2G了,为什么?
  • ArcGIS核密度分析(栅格处理范围与掩膜分析)
  • mysql性能优化-延迟写和异步写优化
  • 算法之逻辑斯蒂回归(Logistic regression)
  • 计量校准中测量溯源性是什么?已校准设备要怎么处理?
  • C# 关于“您与该网站的连接不是私密连接...”的问题
  • MacOS安装homebrew,jEnv,多版本JDK
  • 2024年 人工智能领域的一些成果与未来发展趋势 形式丰富多样
  • 数据结构----栈与递归例题讲解
  • 大模型学习方向不知道的,看完这篇学习思路好清晰!!