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

dom api

dom的全称为Document Object Model,即文档对象模型.所谓文档就是html页面,对象就是js里的对象,通过这个模型把页面上的元素和js里的对象关联起来.

下面是关于dom api的一些常用方法

1.获取元素

        使用querySelector()方法获取一个元素

        使用querySelectorAll()方法获取所有元素

当获取全部元素的时候,是用一个数组存放的.

 

2. 事件:就是针对用户的操作进行一系列的反应

事件的三要素:

        1.事件源: 那个元素产生的事件

        2.事件类型:点击,双击,移动,键盘按下等等操作称为事件

        3.事件的处理程序:事件发生之后要执行那个代码

下面举个栗子简单实现一个点击事件:

 上面逻辑通过点击之后弹出一个窗口,显示hellow world.

3. 获取/修改元素内容

首先获取要先获取要修改的元素,使用innerHTML属性,就能拿到元素里的内容,修改该属性就会影响页面的显示

上面事件每点击一次在原来内容的基础上拼接一个a

4. 获取/修改元素的属性

修改元素属性和修改元素的内容方法很相似,都是先获取到元素属性所在的标签,,然后通过标签.属性对相应的属性进行修改.

5. 获取/修改表单元素的属性 

表单元素中有一些特殊的属性,和普通的属性不同,可以用其他的方法进行修改

value属性

innerHTML得到的是标签里的内容,而input是一个单标签,没有内容我们在获取手动添加内容的时候采用input.value的方法

value属性默认是一个String类型

上述代码是在文本框中输入一个数字,每提交一次数字大小加1. 但value默认是一个string类型,在使用前可以用parseInt()进行强转.

type属性

type属性影响的是输入框的形态,他可以是文本框,密码框等.

下面我们实现一个密码框

6. 获取/修改样式的属性

        修改内联样式(修改style属性的值)

        在css中属性的命名方式都是脊柱命名法

        而在js中是驼峰的形式

 实现一个点击之后字体变大的例子

        修改元素引用的css类名

下面实现一个日间模式和夜间模式的切换

这面的这几个操作都是针对页面已有的元素进行展开的。

7. 新增元素

首先创建一个元素,把这个元素放到dom树中

上述代码中本开无序列表只有11和22,创建了多个无需列表加到子元素的末尾

8. 删除元素

 将上面的33元素删除掉

删除元素要先选中这个元素,因为querySelectorAll返回的结果是一个数组,可以直接只用下标找到要删除的元素,然后通过removeChild()方法删除这个元素.

相关文章:

  • Unity中Shader的Standard材质解析(二)
  • 媒体格式转换软件Permute 3 mac中文版软件特点
  • C百题--7.输出乘法表
  • 【RocketMq系列-02】RocketMq的架构解析和高性能设计
  • Linux每日智囊
  • 第二类曲线积分@对坐标的曲线积分
  • 学习笔记,http协议1.0,1.1,2.0之间的差别
  • macos端文件夹快速访问工具 Default Folder X 最新for mac
  • 【数据结构】B : DS图应用--最短路径
  • Windows任务管理器内存性能界面各个参数含义
  • 【操作系统】线程的状态
  • OpenCV将两张图片拼接成一张图片
  • 有了倾斜摄影,如何搭建一座智慧城市?
  • CMakeLists.txt:打印find_package变量;判断库文件路径设定是否正确;install文件设置
  • Ps:裁剪工具 - 裁剪预设的应用
  • hexo+github搭建个人博客
  • angular组件开发
  • Java基本数据类型之Number
  • leetcode讲解--894. All Possible Full Binary Trees
  • Linux快速复制或删除大量小文件
  • nodejs实现webservice问题总结
  • October CMS - 快速入门 9 Images And Galleries
  • PHP的Ev教程三(Periodic watcher)
  • python3 使用 asyncio 代替线程
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • Wamp集成环境 添加PHP的新版本
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 微信小程序--------语音识别(前端自己也能玩)
  • 由插件封装引出的一丢丢思考
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • FaaS 的简单实践
  • ​HTTP与HTTPS:网络通信的安全卫士
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #QT(QCharts绘制曲线)
  • #stm32整理(一)flash读写
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (JS基础)String 类型
  • (python)数据结构---字典
  • (二)斐波那契Fabonacci函数
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (算法)Game
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转)Oracle存储过程编写经验和优化措施
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .NET CLR基本术语
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET Framework 3.5安装教程
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .net 微服务 服务保护 自动重试 Polly
  • .NET/C# 项目如何优雅地设置条件编译符号?