DOM(一):获取页面元素、操作元素

news2025/4/5 19:48:21

DOM(一)

    • 获取页面元素
    • 事件
    • 操作元素

获取页面元素

1.根据ID获取

使用getElementById()方法获取带有ID的元素对象,格式如下:

var 变量名 = document.getElementById(‘id名’);

例如:

<div id = 'time'>2022-12-18</div>
<script>
var times = document.getElementById('time')
console.log(times);
</script>

结果:

请添加图片描述
代码二:

<script>
var times = document.getElementById('time')
console.log(times);
</script>
<div id = 'time'>2022-12-18</div>

结果:

请添加图片描述

注意点:

  • JavaScript是从上到下读取代码,script标签里面的变量一定要在script标签的上面。如果写在下面,则会显示null
  • 参数id是大小写敏感的字符串,必须用引号
  • 返回的是一个元素对象

2.根据标签名获取元素
方法一:使用getElementsByTagName()方法获取全部标签,格式如下:

var 变量名 = document.getElementsByTagName(‘标签名’);

方法二:获取某个元素(父元素)内部所有指定标签名的子元素

var 变量名 = element.getElementsByTagName(‘标签名’);

注意点:

  • 返回的值是一个对象的集合,如果需要得到里面的元素需要遍历
  • 得到的元素对象是动态的
  • 父元素必须是单个对象(必须指定是具体的哪一个元素对象),获取的时候不包括父元素自己。

例如:
请添加图片描述
请添加图片描述

其中,第一个获取的是元素集合,下面的for循环遍历则得到的是元素对象。

例二:

    <ul>
        <li>1你好</li>
        <li>2你好</li>
        <li>3你好</li>
    </ul>
    <ol id="oll">
        <li>hello</li>
        <li>hello</li>
        <li>hello</li>
    </ol>
    <script>
        //如果有两种li标签,如何准确获取页面元素
        //方法一:
        /*var ol = document.getElementsByTagName('ol');//此时返回的是伪数组元素[ol]
        console.log(ol.getElementsByTagName('li'));
        此时这个程序会报错,原因是因为伪数组元素不能作为父元素,父元素必须要指明是哪一个元素
        */
        var ols = document.getElementsByTagName('ol');//先将ol赋值给ols
        console.log(ols);
        console.log(ols[0].getElementsByTagName('li'));//ols作为伪数组,需要指定是哪一个特定的ol,因此要加上编号,在获取ol中的li

        //方法二
        //通过给ol赋id,有了id之后可以通过id进行查询
        var ol2 = document.getElementById('oll');//先查询到id为oll的赋给ol2
        console.log(ol2.getElementsByTagName('li'));//此时ol2已经是一个特定的数组,此时再通过标签名获取li不会再报错
    </script>

3.HTML5新增方法获取元素

请添加图片描述
例如:

   <div class="box">1</div>
    <div class="box">2</div>
    <div class="box1">3</div>
    <div id="nav">
        <ul>
            <li>hello<>
            <li>你好<>
        </ul>
    </div>
    <script>
        //根据类名获取元素集合,返回值依旧是伪数组
        var box = document.getElementsByClassName('box');
        console.log(box);//返回的值为集合
        //querySelector返回指定选择器的第一个元素对象(不是集合),选择器可以为任何类型,通过选择器加不同的符号
        var firstbox = document.querySelector('.box');//box前面加上点,表示类选择器
        console.log(firstbox);
        var navbox = document.querySelector('#nav');//使用#表示是id选择器
        console.log(navbox);
        var libox = document.querySelector('li');//返回第一个li对象
        console.log(libox);
        //querySelectorAll()返回的是指定选择器的所有对象集合
        var all = document.querySelectorAll('li');
        console.log(all);

    </script>

请添加图片描述
4.获取body元素和html元素

获取body元素

document.body

获取html元素

document.documentElement

例如:
请添加图片描述
结果:

请添加图片描述

事件

1.事件概述
JavaScript使我们有能力创建动态页面,事件是可以被JavaScript侦测到的行为。

2.事件三要素

  • 事件源:事件被触发的对象
  • 事件类型:事件触发的方式,例如鼠标点击、键盘按下等
  • 事件处理程序:需要执行的行为,一般是通过一个函数赋值的方式完成

例如:
请添加图片描述
3.执行事件的步骤

  1. 获取事件源
  2. 注册事件
  3. 添加事件处理程序(采取函数辅助形式)

操作元素

1.改变元素内容

方法一:

element.innerText

方法二:

element.innerHTML

请添加图片描述
结果:
请添加图片描述
请添加图片描述
效果:点击获取当前时间按钮,第一个btn1则会显示出事件

添加事件进行元素内容改变时,只有执行了事件之后才会发生变化,例如这个例子第一个就是通过鼠标点击之后就会显示出当前时间,第二个没有添加事件,那么浏览器进行刷新时,就直接会显示当前时间

element.innerText与element.innerHTML的区别

区别一:innerText不识别html标签,但是innerHTML识别
请添加图片描述

请添加图片描述
请添加图片描述

请添加图片描述
区别二:innerText不会去除空格和换行,但是innerHTML会

请添加图片描述

请添加图片描述
2.元素的属性操作

对于src、href、id、alt、title等属性进行更改
格式一般为:

标签名.属性名 = 修改值

例如:
请添加图片描述
请添加图片描述
请添加图片描述

效果为:此时点击图片一和图片二会显示两个不同的图片,其他的属性也类似

3.表单元素的属性操作
利用DOM操作下列元素的属性

type、vaule、checked、selected、disabled

注意:表单里面的值不能够通过innerHTML和innerText来改变,是通过value来修改的

例如:

<button>按钮</button>
<input type="text" value="请输入内容">
<script>
var btn = document.querySelector('button');
var input =document.querySelector('input');
 btn.onclick = function(){
    input.value = 'hello';//通过修改value值来进行表单按钮的修改
    //如果想要按钮点击之后禁用,通过disabled
    btn.disabled = true;
    //也可以通过this.disabled = true,这里的this指的是函数的调用者,即btn
    
 }

点击前:

请添加图片描述
点击后:

请添加图片描述

注意:因为设置了disabled,点击之后文本框内容变化,并且按钮不能够在被点击

4.样式属性操作

通过JS修改元素的大小、颜色、位置

  1. element.style.属性名    行内样式操作
  2. element.className.属性名     类名样式操作

请添加图片描述

5.使用className修改样式

  • 当我们修改样式较多时,使用element.style太麻烦,这时候就可以使用className类名
  • className会直接更改元素的类名,会覆盖原先的类名
  • className里面引用的类写在css里面
    请添加图片描述

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

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

相关文章

PyTorch——应用一个已训练好的图片分类网络——AlexNet

1.识别一个图像主体的预训练网络 ImageNet数据集是由一个Stanford大学维护的包含1400多万幅图像的非常大的数据集&#xff0c;所有的图像都用来自WordNet数据集的名词层次结构标记&#xff0c;而WordNet数据集又是一个大型的英语词汇数据库。 1.1获取一个预先训练好的网络用于…

【矩阵论】7.范数理论——基本概念——矩阵范数生成向量范数谱范不等式

7.1.3 矩阵范数产生向量范数 CnnC^{n\times n}Cnn 上任一矩阵范数 ∥∙∥\Vert \bullet\Vert∥∙∥ 都产生一个向量范数 φ(X)∥X∥V\varphi(X)\Vert X\Vert_Vφ(X)∥X∥V​ 矩阵范数与向量范数的相容性&#xff1a;φ(Ax)≤∥A∥φ(x)\varphi(Ax)\le \Vert A\Vert\varphi(x)φ…

蓝牙耳机什么牌子好?音质好、配置高的蓝牙耳机分享

​经常听到很多网友在讨论哪些蓝牙耳机好用&#xff0c;什么蓝牙耳机的配置高......选购蓝牙耳机无非就是音质、蓝牙技术、续航、佩戴体验等各方面条件&#xff0c;还有哪位朋友不知道该如何选购蓝牙耳机的&#xff1f;根据我对蓝牙耳机的了解&#xff0c;从网上整理了好几款蓝…

【关于eps8266自动重启 Soft WDT reset】

【关于eps8266自动重启 Soft WDT reset】1. 前言2. 分析问题2.1 长时间没有喂狗2.2 delayMicroseconds 函数触发3. 解决问题3.1 解决长时间没有喂狗3.2 解决delayMicroseconds 函数触发5. 小结1. 前言 最近使用esp8266进行远程遥控时, 但是在驱动舵机servo库的过程中出现了esp…

第二证券|两大板块掀涨停潮,有个股猛拉20cm!这只港股复牌一度暴跌

A股商场周五上午窄幅震动&#xff0c;上证指数微涨0.09点&#xff0c;核算机等板块领涨。 新股体现持续分解&#xff0c;4只今日上市的新股中&#xff0c;两只科创板新股上涨&#xff0c;两只北交所新股则破发。 港股全体小幅调整&#xff0c;全体动摇不算大&#xff0c;但仍…

【推荐】智慧农业解决方案资料合集30篇

智慧农业 是农业中的智慧经济&#xff0c;智慧经济形态在农业中的具体表现。智慧农业是智慧经济重要的组成部分&#xff1b;对于发展中国家而言&#xff0c;智慧农业是智慧经济主要的组成部分&#xff0c;是发展中国家消除贫困、实现后发优势、经济发展后来居上、实现赶超战略的…

16含风光水的虚拟电厂与配电公司协调调度模型(场景削减MATLAB程序)

参考文献 含风光水的虚拟电厂与配电公司协调调度模型——董文略&#xff08;复现场景削减部分&#xff09; 主要内容 代码主要做的是风电、光伏以及电价场景不确定性模拟&#xff0c;首先由一组确定性的方案&#xff0c;生成50种光伏场景&#xff0c;为了避免大规模光伏场景…

小结 | 支持向量机 (SVM)

一.基本原理 SVM是一种二分类模型 基本思想&#xff1a;在特征空间中寻找间隔最大的分离超平面使数据得到高效的二分类&#xff0c;具体来讲&#xff0c;有三种情况&#xff08;不加核函数的话就是线性模型&#xff0c;加了之后才会升级为一个非线性模型&#xff09; 当训练…

MybatisPlus详解 | DQLDML快速开发... | 系统性学习 | 无知的我费曼笔记

无知的我正在复盘MybatisPlus&#xff0c;顺便上传笔记。。。 下图是我总结的 MP 知识的初级思维导图&#xff0c;后续会不断补充 文章目录1 MyBatisPlus入门案例与简介1.1 入门案例回顾SpringBoot整合Mybatis的开发过程:步骤1:创建数据库及表步骤2:创建SpringBoot工程步骤…

二苯并环辛炔-聚乙二醇-生物素DBCO-PEG-Biotin简介 DBCO-PEG-Biotin衍生物可以在没有金属催化剂(铜离子)作用下发生点击化学反应

中文名&#xff1a;二苯并环辛炔-聚乙二醇-生物素&#xff0c;生物素-聚乙二醇环辛炔 英文名&#xff1a;DBCO-PEG-Biotin&#xff0c;Biotin-PEG-DBCO 溶剂&#xff1a;溶于大部分有机溶剂&#xff0c;如&#xff1a;DCM、DMF、DMSO、THF等等&#xff0c;在水中有很好的溶解性…

变分自编码器VAE的数学原理

变分自编码器(VAE)是一种应用广泛的无监督学习方法&#xff0c;它的应用包括图像生成、表示学习和降维等。虽然在网络架构上经常与Auto-Encoder联系在一起&#xff0c;但VAE的理论基础和数学公式是截然不同的。本文将讨论是什么让VAE如此不同&#xff0c;并解释VAE如何连接“变…

【JVS低代码】一分钟学会如何快速创建应用

应用中心功能介绍 在JVS角色中有“应用管理员”的角色&#xff0c;如果赋予该角色&#xff0c;则用户为应用管理员&#xff0c;应用管理员有进入应用配置中心的权限。 创建空白应用&#xff1a; 从模板创建应用&#xff1a; 应用中心入口 具备应用管理员权限的用户&#xff…

嵌入式软件开发为什么需要DevOps?

DevOps提出至今已逾十年&#xff0c;作为热门概念&#xff0c;DevOps近年来频频出现于各大技术社区和媒体文章中&#xff0c;备受行业大咖追捧。作为新一代持续集成/持续开发&#xff08;CI/CD&#xff09;的方法论&#xff0c;DevOps正被快速引入嵌入式软件开发领域中。 为什…

【C++】类和对象(C++门槛)

唯有奋力奔跑&#xff0c;才能方得始终。 文章目录一、struct > class(类 方法/成员函数 属性/成员变量)1.自定义类型 struct 和 class 的区别2.类放在内存中的什么存储区&#xff1f;3.类中函数的两种定义方式3.1 声明和定义分离&#xff08;增强代码可读性&#xff0c;…

docker 搭建 Nuget 服务器,CentOS,宝塔面板

docker 搭建 Nuget 服务器&#xff0c;CentOS,宝塔面板创建容器挂载目录给目录指定写入权限创建并运行 Nuget 服务创建Nuget包项目属性修改包版本号预生成事件执行重新生成手动上传vs菜单命令上传 记得上传在前修改版本号添加外部工具添加自定义命令项目文件夹下面新建 push.cm…

stable diffuison论文阅读

论文链接&#xff1a;High-Resolution Image Synthesis with Latent Diffusion Models 文章目录摘要引言普及高分辨率图像合成向潜空间出发相关工作图像合成的生成模型两阶段法图像合成方法感知图像压缩隐空间扩散模型扩散模型隐空间表征的生成模型条件机制实验感知压缩权衡基于…

【发表案例】计算机科学类SCI,仅1个月零6天录用,涵盖软件、信息、数据云计算、网络、建模等研究方向

【期刊简介】IF:0.5-1.0&#xff0c;JCR4区&#xff0c;中科院4区 【版面情况】SCI 在检&#xff0c;正刊 【征稿领域】计算机科学和控制系统相关问题的广泛领域&#xff0c;包括&#xff1a;软硬件工程&#xff1b;管理系统工程&#xff1b;信息系统和数据库&#xff1b;嵌入…

GPS(rinex格式)数据解析详细解读

RINEX格式现如今已成为GPS测量应用中的标准数据格式&#xff0c;目前应用最为广泛、最普遍的是RINEX格式的第2个版本&#xff0c;该版本能够用于包括静态和动态GPS测量在内的不同观测模式数据。在该版本中定义了6种不同类型的数据文件&#xff0c;分别用于存放不同类型的数据&a…

【经典设计】构建业务架构的3大视图

​ 在软件设计过程中&#xff0c;架构设计、功能设计和数据设计是三个不同层次的设计工作。而业务架构是系统整体规划中重要的基础工作&#xff0c;通常用业务架构图来表达业务架构。 业务架构定义了企业的治理结构、业务能力、业务流程、业务数据。业务能力说明企业做什么&a…

I/O指令和I/O地址译码

目录 掌握 I/O指令和I/O地址译码 独立编址&#xff08;标准的I/O寻址方式&#xff09; 8086/8088采用 特点 统一编址&#xff08;存储器映像I/O寻址方式又称存储器对应I/O寻址方式&#xff09; 特点 优点 缺点 输入输出指令 输入指令 输出指令 I/O接口的端口地址译…