Web APIs(获取元素+操作元素+节点操作)

目录

1.API 和 Web API

2.DOM导读

DOM树

3.获取元素

getElementById获取元素

getElementsByTagName获取元素

H5新增方法获取

获取特殊元素

4.事件基础

执行事件

操作元素

修改表单属性

修改样式属性

使用className修改样式属性

获取属性的值

设置属性的值

移除属性值

H5自定义属性

5.节点操作

节点概述

节点层级

父级节点 

子级节点

兄弟节点

添加节点

删除节点

复制节点

三种动态元素创建区别


1.API 和 Web API

2.DOM导读

DOM树

3.获取元素

getElementById获取元素

文档页面从上往下加载,先有标签,将script写到标签的下面

var  变量名=document.getElementById('参数')

返回的类型是元素对象,object         <div id=''time''>2019-9-9</div>

使用console.dir(变量名)   可以查看里面的属性和方法

getElementsByTagName获取元素

根据标签名获取

var list=document.getElementsByTagName('标签名')

返回的是一个集合,想要得到里面的元素需要用for循环遍历

得到的元素对象是动态的

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

element.getElementsByTagName('标签名')

父元素必须是单个对象

想要得到ol中的li,有两种方法

var ol=document.getElementsByTagName('li')

console.log(ol[0].getElementsByTagName('li'))

或者是 在写ol时直接给ol的标签中命名一个id(下面命名的id是ol)

var ol=document.getElementsByTagName('ol')

console.log(ol.getElementsByTagName('li'))

H5新增方法获取

document.getElementsByClassName('类名')   根据类名返回元素对象集合

document.querySelector('选择器')         根据指定选择器返回第一个元素对象;其中类选择器要加.如.box,而id选择器要加#,如#nav

document.querySelectorAll('选择器')     返回指定选择器的所有元素对象集合

获取特殊元素

获取body元素    document.body

获取html元素     document.documentElement

4.事件基础

执行事件

事件是由三部分组成,事件源、事件类型、事件处理程序,也将它们成为事件三要素

事件源 :事件被触发的对象    如按钮

事件类型  :如何触发,什么事件   如点击鼠标或者鼠标经过等

事件处理程序  :通过一个函数赋值的方法来完成

事件类型,即如何触发

操作元素

这两个方法可以在触发时改变原先的内容

element.innerText   不会注意html标签,它会把空格和换行也去掉

element.innerHTML     注意html标签,会保留空格和换行

修改表单属性

<input type="text" value="输入内容">

想要点击按钮,文本框的内容发生变化用input.value=

想要某个表单被禁用,就是点击过一次后不能再点击用  按钮名.disabled=true  或者  this.disabled=true,这里的this指向的是事件函数的调用者

修改样式属性

采取驼峰命名法,注意第二个单词首字母要大写;它形成的是行内样式,权重高

仿淘宝关闭二维码图

触发时间的开关是点击图片叉号,关闭整个二维码,运用到了隐藏的设置display:none;在设置元素的样式时一般不用写出来,默认是display:block

另外就是要注意this的用法,this指向的是事件函数的调用者,在此处事件函数的调用者是btn,所以不能写this.style.display

使用className修改样式属性

当触发事件时要修改的元素样式太多,可以现在style中写一个新的类,把想要的元素样式写进去,之后在script中利用className=‘新类名’来改变样式

后面的类名会覆盖掉原先的类名

获取属性的值

element.属性   获取属性值                获取的是内置属性值,即元素本身自带的属性

element.getAttribute(’属性‘)              获得的是程序员自定义的属性

设置属性的值

element.属性='值'                     设置内置属性值

element.setAttribute('属性','值')                 设置自定义的属性

div.className='bg'   =======   div.setsetAttribute('class','bg')  这里写的是class而不是className

移除属性值

element.removeAttribute('属性')

H5自定义属性

设置H5自定义属性

H5规定自定义属性以data-开头作为属性名并且赋值        <dic data-index='1'><index>

或者就是使用setAttribute      element.setAttribute('data-index',2)

获取H5自定义属性

第一种就是常用的 element.getAttribute('data-index')

H5新增的获取方法只能获取data-开头的     div,dataset.属性名  或者  div.dataset['属性名']

dataset是一个存放了所有以data开头的自定义属性的集合

当自定义属性中有多个使用‘-’连接的单词,在获取时可以采用驼峰命名法

5.节点操作

节点概述


节点层级

父级节点 

node.parentNode   

该属性可返回某节点的父节点,是离该元素最近的一个父节点,没有的话则返回null

子级节点

使用parentNode.childNodes   返回值中包含了元素节点、文本节点,不精确

使用parentNode.children      值返回子元素节点

第一个和最后一个子元素

firstChild   第一个子节点,会获得文本节点 

firstElementChild        可以返回第一个元素节点,但有兼容性问题

children[]       实用,利用数组的概念,最后一个元素索引是ol.children.length-1

兄弟节点

node.nextSibling    返回当前元素的下一个兄弟节点,找不到则返回null,包括文本节点

node.previousSibling       返回当前元素的上一个兄弟节点,找不到则返回true,包括文本节点

node.nextElementSibling         返回当前元素的下一个兄弟节点

node.previousElementSibling

添加节点

添加节点是先创建再添加  var 新名=document.createElement('类型')

node.appendChild(child)   将一个节点添加到指定父节点的子节点列表中,类似于css中的after伪元素

node.insertBefore(child,指定元素)   将一个节点添加到父节点的指定子节点前面,类似before伪元素

node是父节点

删除节点

node.removeChild(child)    删除一个子节点

删除留言

点击链接即可删除留言,在这里为了不使点击链接后跳转页面,添加了javascript:;

复制节点

node.cloneNode()   复制一个节点

如果括号参数为空或者是false,是浅拷贝,即只拷贝复制节点本身,不克隆里面的子节点

如果括号参数为true,是深拷贝,会复制节点本身以及里面所有的子节点

要注意的是,在定义新变量来接复制值时,要把复制值放在网页中的某个位置

三种动态元素创建区别

document.write()   直接将内容写入页面的内容流中,当文档执行完毕时,它会导致页面全部重绘(清空页面,显示出write()的内容)

element.innerHTML 创建多个元素效率更高(不要拼接字符串,采取数组形式拼接),结构复杂

document.createElement()    创建多个元素效率稍微低一点,但是结构清晰

创建单元格并删除

tr是行, td是单元格,th是行中单元格的内容

遍历数组,并获取数组中的对象,dates[i][k]表示的是属性值

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

宁夏银川市起名专家的老师颜廷利:死神(死亡)并不可怕,可怕的是...

在中国优秀传统文化之中&#xff0c;汉语‘巳’字与‘四’同音&#xff0c;在阿拉伯数字里面&#xff0c;通常用‘4’来表示&#xff1b; 湖南长沙、四川成都、重庆、宁夏银川最靠谱最厉害的起名大师的老师颜廷利教授指出&#xff0c;作为汉语‘九’字&#xff0c;倘若是换一个…

FPGA OSD 方案,应用于XBOX游戏机收费等领域

FPGA方案&#xff0c;HDMI IN接收原始HDMI 信号&#xff0c;HDMI OUT输出叠加字符/图片后的HDMI信号 客户应用&#xff1a;XBOX游戏机收费 主要特性&#xff1a; 1.支持多分辨率格式显示 2.支持OSD 叠加多个图层 3.支持字体大小随意配置 4.支持字体格式随意配置 5.零延时&…

【知识碎片】2024_05_13

本文记录了两道代码题【自除数】和【除自身以外数组的乘积】&#xff08;利用了前缀积和后缀积&#xff0c;值得再看&#xff09;&#xff0c;第二部分记录了关于指针数组和逗号表达式的两道选择题。 每日代码 自除数 . - 力扣&#xff08;LeetCode&#xff09; /*** Note: T…

将macOS系统安装到外置硬盘上教程

常常因为Mac昂贵的价格&#xff0c;我们会选择低容量的硬盘版本&#xff0c;造成很多大型游戏都安装不了的尴尬境地。今天&#xff0c;我们要探讨一个非常实用的话题&#xff1a;如何给你的Mac电脑扩容&#xff0c;通过将macOS系统安装到外置硬盘上。这对于希望提升存储空间但又…

【C++ 】红黑树

1.1 红黑树的概念 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是Red或 Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;红黑树确保没有一条路 径会比其他路径长出俩倍&#xff…

GEVernova推出GEV新能源平台,引领新能源未来

近日&#xff0c;全球领先的能源设备制造和服务公司 GE Vernova 宣布推出 GEV 新能源平台&#xff0c;这是一个将金融、科技和产业深度融合的全新投资平台。GEV 新能源平台旨在为用户提供一站式可持续新能源投资解决方案&#xff0c;助力全球新能源转型和可持续发展。 新能源已…

一文汇总对比英伟达、AMD、英特尔显卡GPU

‍‍&#x1f3e1;博客主页&#xff1a; virobotics(仪酷智能)&#xff1a;LabVIEW深度学习、人工智能博主 &#x1f4d1;上期文章&#xff1a;『【仪酷LabVIEW AI工具包案例】使用LabVIEW AI工具包YOLOv5结合Dobot机械臂实现智能垃圾分类』 &#x1f37b;本文由virobotics(仪酷…

前端铺子-NodeJS后端:基于Node.js构建高效后端服务的探索与实践

一、引言 随着前端技术的快速发展&#xff0c;越来越多的开发者开始关注前后端分离的开发模式。前端铺子作为一个旨在服务前端开发者的开源项目&#xff0c;近期推出了基于Node.js的后端系统。该系统通过整合Node.js、Nodemon和MySQL等技术&#xff0c;为前端开发者提供了一个…

Abaqus显示单元面的编号

注意&#xff1a;这里为了显示单元的面编号&#xff0c;而不是‘Part’的面。对于六面体单元有六个面&#xff0c;编号从1-6&#xff0c;对于四面体单元有四个面&#xff0c;编号从1-4。 1、要显示单元面的编号首先要进入‘Visualization’模块&#xff0c;如下图&#xff1a;…

【GD32】03 - EXTI外部中断

EXTI EXTI&#xff0c;全称External Interrupt/Event Controller&#xff0c;即外部中断/事件控制器&#xff0c;是微控制器中的一个重要组成部分。它主要用于管理来自外部设备的中断和事件请求。以下是关于EXTI的详细介绍&#xff1a; 功能概述&#xff1a; EXTI管理了控制器的…

专业网站设计方案

当前互联网的快速发展和普及&#xff0c;使得网站设计成为了一个极其重要的环节。一个好的网站设计方案将能够吸引更多的访问者&#xff0c;提高用户体验&#xff0c;增强品牌形象。下面将为您介绍一个专业的网站设计方案。 首先&#xff0c;一个专业的网站设计方案应该具备清晰…

el-calendar自定义日程,显示文字内容,el-date-picker和el-calendar互动互联

Vue实现 el-calendar自定义日程,显示文字内容,el-date-picker和el-calendar互动互联 效果展示 首先el-calendar需要自定义日程内容的话,其格式一般必须满足如下结构 dataList = [{date: 2024-05-08, content: "数学模拟试卷(3)"},{date: 2024-05-08, content: …