day15 DOM(1)

news2024/9/23 17:12:11

目录

    • DOM简介
    • DOM作用
      • 能力
      • 使用场景
    • DOM树(文档树)
      • DOM对象
        • 获取DOM对象
          • 根据CSS选择器来获取DOM元素
          • 其它获取DOM元素方法
        • 操作元素内容
        • 操作元素属性

DOM简介

当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。DOM是用来呈现以及与任意HTML或XML文档交互的API。

DOM作用

开发网页内容特效和实现用户交互

能力

  • 获取元素属性好文本节点值、样式
  • 修改样式
  • 增删改节点
  • 事件监听与响应处理

使用场景

  • 轮播图
  • 获取用户填写的表单数据
  • 加载展示更多的数据到页面
  • 图片预览

DOM树(文档树)

  • 将HTML文档以树状结构直观地表现出来。
  • 描述网页内容关系的名词
  • 作用:文档树直观地体现了标签与标签之间的关系

DOM对象

浏览器根据html标签生成的JS对象

  • 所有的标签属性都可以在这个对象上找到
  • 修改这个对象的属性会自动映射到标签上

在html里叫标签,js获取过来后,在dom中叫对dom对象
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • DOM的核心思想
    把网页内容当做对象来处理

  • document对象

    • 是DOM里提供的一个对象
    • 它提供的属性和方法都是用来访问和操作网页内容
    • 网页所有内容都在document
获取DOM对象
根据CSS选择器来获取DOM元素
  1. 选择匹配的第一个元素
    语法:document.querySelector('css选择器')
    参数:包含一个或多个有效的CSS选择器字符串
    返回值:CSS选择器匹配的NodeList对象集合

可以直接修改元素。

示例:

        const box = document.querySelector('.box')
        console.log(box)
        const nav = document.querySelector('#nav')
        console.log(nav)
  1. 选择匹配的多个元素
    语法:document.querySelectorAll('css选择器')
    参数:包含一个或多个有效的CSS选择器字符串
    返回值:CSS选择器匹配的第一个元素,一个HTMLElement对象。如果没有匹配到,则返回null。

因为得到的是一个伪数组,不可以直接修改元素,要通过遍历的方式修改。

示例:

        const lis = document.querySelectorAll('ul li')
        console.log(lis)
   <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
    </ul>

在这里插入图片描述

其它获取DOM元素方法
  • 根据id获取一个元素
    document.getElementById('nav')

  • 根据标签获取一类元素
    document.getElementsByTagName('div')

  • 根据类名获取元素
    document.getElementsByClassName('www')

操作元素内容

修改元素内容。

  1. 对象.innerText属性
  • 将文本内容纯添加/更新到任意标签位置
  • 纯文本,不解析标签
        const box = document.querySelector('.box')
        console.log(box.innerText)//获取文字内容
        box.innerText = 'ggg'
        console.log(box.innerText)

在这里插入图片描述

  1. 对象.innerHTML属性
  • 将文本内容纯添加/更新到任意标签位置
  • 解析标签
const box = document.querySelector('.box')
        console.log(box.innerHTML)//获取文字内容
        box.innerHTML = '<strong>ggg</strong>'
        console.log(box.innerHTML)

在这里插入图片描述

操作元素属性
  • 对象.属性=值 有则改,无则增。

示例:

        const img = document.querySelector('img')
        img.src = '/images/huajiao.jpg'
  • 操作类名(className)操作CSS
  • 元素.className = 'active'
        const div = document.querySelector('div')
        div.className = 'box'
     div {
            width: 300px;
            height: 303px;
        }

        .box {
            width: 300px;
            height: 100px;
            background-color: skyblue;
        }
<div></div>

在这里插入图片描述
注意:直接使用会覆盖掉之前的类名:

 <div class="nav">zhezhe</div>
div {
            width: 300px;
            height: 303px;
        }

        .box {
            width: 300px;
            height: 100px;
            background-color: skyblue;
        }

        .nav {
            color: red;
        }
const div = document.querySelector('div')
        div.className = 'box'

无法正常显示红色字体
修改为以下即可:

const div = document.querySelector('div')
div.className = 'nav box'

在这里插入图片描述

  • 通过classList操作类控制CSS(H5)

增加类:
box.classList.add('active')

.box {
            width: 300px;
            height: 100px;
            color: aqua;
        }

        .active {
            color: plum;
            background-color: aquamarine;
        }
 <div class="box">zhezhe</div>
const box = document.querySelector('.box')
box.classList.add('active')

在这里插入图片描述
删除类:
box.classList.remove('box')
在这里插入图片描述
切换类(有则删除,无则增加):
box.classList.toggle('active')

注意:不加类前的.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1397885.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

KKVIEW远程控制软件介绍

KKVIEW是一款全功能远程控制软件&#xff0c;可以随时随地访问家里或公司设备。KKVIEW,连接自由&#xff0c;KKVIEW旨在帮助用户在远程技术支持、远程办公、远程教育等领域便利的开展工作。 [主要功能] 远程桌面 一键远程显示远程桌面&#xff0c;一键开启远程控制&#xff0…

Linux环境下部署Tomcat(详细图文)

目录 一、下载地址 1.服务器不能联网情况下载 2.服务器能够联网 二、安装 1. Tomcat解压 2. Tomcat目录说明&#xff1a; 3. 重命名解压后的文件名 4. 配置环境变量 5. 修改配置文件 6.启动Tomcat 7.访问Tomcat 8. 停止Tomcat 一、下载地址 1.服务器不能联网情况下…

软考十大管理领域49个过程开展频次总结

1、仅开展一次或仅在预定义时点开展的项目管理过程 序号 过程 过程组 说明 1 制定项目章程 启动 项目章程尽量在整个项目期间保持不变 2 制订项目管理计划 计划 各种管理(程序性)计划和项目基准尽量在整个项目期间保持不变 3 规划范围管理 除规划沟通管…

读懂比特币—bitcoin代码分析(一)

最近美国 SEC 通过了比特币的 ETF申请&#xff0c;比特币究竟是个什么东西&#xff0c;从技术上来说&#xff0c;bitcoin 是一个点对点的电子现金系统&#xff0c;它可以实现分布式的记账&#xff0c;不依赖中心化的账务系统&#xff08;比如银行&#xff0c;支付宝&#xff09…

线上排查问题全套命令WIP(查看日志、端口占用、磁盘、CPU等)

线上排查问题全套命令WIP&#xff08;查看日志、端口占用、磁盘、CPU等&#xff09; 1 查看日志 1.1 less ①less xxx.log&#xff1a;查看日志文件 ②less -N xxx.log&#xff1a;带行号查看日志 ③g&#xff1a;定位到文件顶部 ④G&#xff08;shiftg键&#xff09;&am…

AI嵌入式K210项目(15)-安全散列算法加速器

文章目录 前言一、什么是SHA256&#xff1f;实验原理 二、K210的安全散列算法加速器三、实验过程总结 前言 K210内置了丰富的加速器&#xff0c;包括神经网络处理器 (KPU)&#xff0c;AES(高级加密加速器)&#xff0c;APU 麦克风阵列语音数据加速计算处理器&#xff0c;现场可…

【RabbitMQ】快速入门及基本使用

一、引言 1、、消息队列 Ⅰ、什么是消息队列&#xff1f; 消息队列是一种进程间通信或同一进程的不同线程间的通信方式&#xff0c;软件的贮列用来处理一系列的输入&#xff0c;通常是来自用户。消息队列提供了异步的通信协议&#xff0c;每一个贮列中的纪录包含详细说明的数据…

HCIA-HarmonyOS设备开发认证-序

序 最近涉及到HarmonyOS鸿蒙系统设备开发&#xff0c;在网络上已经有很多相关资料&#xff0c;视频教程&#xff0c;我也移植了公司的一个stm32G474板卡&#xff0c;运行LiteOS-m L0系统。 一面看资料一面移植&#xff0c;遇到不少坑&#xff0c;当看到运行的LOGO时&#xff0…

关于ElasticSearch,你应该知道的

一、集群规划优化实践 1、基于目标数据量规划集群 在业务初期&#xff0c;经常被问到的问题&#xff0c;要几个节点的集群&#xff0c;内存、CPU要多大&#xff0c;要不要SSD&#xff1f; 最主要的考虑点是&#xff1a;你的目标存储数据量是多大&#xff1f;可以针对目标数据…

纯命令行在Ubuntu中安装qemu的ubuntu虚拟机,成功备忘

信息总体还算完整&#xff0c;有个别软件更新了名字&#xff0c;所以在这备忘一下 1. 验证kvm是否支持 ________________________________________________________________ $ grep vmx /proc/cpuinfo __________________________________________________________________…

vue.js安装

1:下载 Node.js 官网&#xff1a;https://nodejs.org/en/download 2:安装 node -v npm -v 3:配置 npm config set prefix "F:\node\node_global" npm config set cache "F:\node\node_cache" 按 win 键并输入“编辑系统环境变量”调出系统属性界面&a…

汽车微电机行业研究:预计2029年将达到188亿美元

微电机行业是技术密集型行业&#xff0c;其起源于欧洲的德国、瑞士等国家&#xff0c;发展于日本。随着改革开放&#xff0c;中国作为发展中国家&#xff0c;承接了德国、日本等发达国家的汽车微电机产业转移&#xff0c;技术扩散逐步向我国转移。 微特电机广泛应用于信息处理设…

5G+物联网:连接万物,重塑智慧社区,开启未来生活新纪元,助力智慧社区的革新与发展

一、5G与物联网&#xff1a;技术概述与基础 随着科技的飞速发展&#xff0c;第五代移动通信技术&#xff08;5G&#xff09;和物联网&#xff08;IoT&#xff09;已经成为当今社会的热门话题。这两项技术作为现代信息社会的核心基础设施&#xff0c;正深刻地改变着人们的生活和…

解决字符串类型转数字类型相加结果异常问题

js字符串类型转换数字类型有七种方法&#xff0c;分别是parseInt()&#xff0c;parseFloat()&#xff0c;Math.floor()&#xff0c;乘以数字&#xff08;*1&#xff09;&#xff0c;Number()&#xff0c;双波浪号 (~~number)&#xff0c;一元运算符&#xff08;number&#xff…

Linux:多线程

目录 1.线程的概念 1.1线程的理解 1.2进程的理解 1.3线程如何看待进程内部的资源? 1.4进程 VS 线程 2.线程的控制 2.1线程的创建 2.2线程的等待 2.3线程的终止 2.4线程ID 2.5线程的分离 3.线程的互斥与同步 3.1相关概念 3.2互斥锁 3.2.1概念理解 3.2.2操作理解…

x-cmd pkg | aliyun - 阿里云 CLI

目录 简介首次用户技术特点竞品和相关作品进一步阅读 简介 aliyun 是基于阿里云 OpenAPI 的管理工具&#xff0c;用于与阿里云服务交互&#xff0c;管理阿里云资源。 首次用户 使用 x env use aliyun 即可自动下载并使用 在终端运行 eval "$(curl https://get.x-cmd.com…

NativePHP:开发跨平台原生应用的强大工具

NativePHP 是一种创新性的技术&#xff0c;可以帮助开发者使用 PHP 语言构建原生应用程序。本文将介绍 NativePHP 的概念和优势&#xff0c;探讨其在跨平台应用开发中的应用&#xff0c;并提供一些使用 NativePHP 开发原生应用的最佳实践。 什么是 NativePHP&#xff1f; Nati…

解决系统开发中的跨域问题:CORS、JSONP、Nginx

文章目录 一、概述1.问题场景2.浏览器的同源策略3.解决思路 二、一点准备工作1.创建前端工程12.创建后端工程3.创建前端工程24.跨域问题 三、方法1&#xff1a;使用CORS四、方法2&#xff1a;JSONP五、方法3&#xff1a;Nginx1.安装和启动&#xff08;windows&#xff09;2.使用…

多维时序 | Matlab实现CNN-LSTM-Mutilhead-Attention卷积长短期记忆神经网络融合多头注意力机制多变量时间序列预测

多维时序 | Matlab实现CNN-LSTM-Mutilhead-Attention卷积长短期记忆神经网络融合多头注意力机制多变量时间序列预测 目录 多维时序 | Matlab实现CNN-LSTM-Mutilhead-Attention卷积长短期记忆神经网络融合多头注意力机制多变量时间序列预测效果一览基本介绍程序设计参考资料 效果…

Qt —— 编译Qt5版本QFTP库,并实现连接服务、获取列表、上传、下载、删除文件等操作(附源码、附基于Qt5编译好的QFTP库)

示例效果1 示例效果2 介绍 QFTP是Qt4的库,Qt5改用了QNetworkAccessManager来代替。但是Qt5提供的QNetworkAccessManager仅支持FTP的上传和下载,所以只能将QFTP库编译为Qt5的库来进行调用。 QFTP在Github的下载地址:https://github.com/qt/qtftp 客户端源码生成的release结果…