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

2024-05-14 04:36

本文主要是介绍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]表示的是属性值

这篇关于Web APIs(获取元素+操作元素+节点操作)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/987758

相关文章

Python正则表达式匹配和替换的操作指南

《Python正则表达式匹配和替换的操作指南》正则表达式是处理文本的强大工具,Python通过re模块提供了完整的正则表达式功能,本文将通过代码示例详细介绍Python中的正则匹配和替换操作,需要的朋... 目录基础语法导入re模块基本元字符常用匹配方法1. re.match() - 从字符串开头匹配2.

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

使用Python的requests库来发送HTTP请求的操作指南

《使用Python的requests库来发送HTTP请求的操作指南》使用Python的requests库发送HTTP请求是非常简单和直观的,requests库提供了丰富的API,可以发送各种类型的HT... 目录前言1. 安装 requests 库2. 发送 GET 请求3. 发送 POST 请求4. 发送