第十二章 文档对象模型(DOM)的介绍和使用

文章目录

  • 一、DOM介绍
  • 二、节点选择器
  • 三、属性操作
  • 四、样式操作
  • 五、尺寸类属性的快速获取
  • 六、标签操作
  • 八、练习

一、DOM介绍

  1. DOM:文档对象模型,document,提供了网页的相关操作。
    • documentwindow的子对象之一,但是DOM不属于BOM
  2. DOM的文档结构是由众多成份组成的一个树状关系模型,在这个关系模型中的任何一个成份都是节点,每一个节点的数据类型,都是对象
    • 元素节点
    • 属性节点
    • 文本节点
    • 注释节点
    • 根节点
  • 操作流程:选择器->属性,样式,内容,元素

二、节点选择器

  1. 元素节点选择器:
    • document.getElementById("id名")
    • document.getElementsByClassName("class名")
    • document.getElementsByTagName("tag名")
    • document.querySelector("css选择器")
    • document.querySelectorAll("css选择器")
    • 父元素.children
    • 父元素.firstElementChild
    • 父元素.lastElementChild
    • 子元素.parentNode
    • 元素.previousElementSibling
    • 元素.nextElementSibling
    • document.documentElement
    • document.head
    • document.body
    • document.forms
    • document.forms[0].elements
    • 注意:选择到的元素是单个?还是多个?
  2. 其他节点选择器(了解)
    • 父元素.childNodes
    • 父元素.firstChild
    • 父元素.firstChild
    • 元素.previousSibling
    • 元素.nextSibling
    • 元素.attributes
    • document
  3. 节点过滤
    • 节点.nodeType
    • 节点.nodeName
    • 节点.nodeValue

三、属性操作

  1. html属性:写在标签上的属性
    • html属性语法:<div 属性名="属性值"></div>
    • 操作语法
      • 自定义:
        • 获取:元素.getAttribute("属性名")
        • 设置:元素.setAttribute("属性名","属性值")
        • 删除:元素.removeAttribute("属性名")
      • 内置:
        • 对象语法
        • 元素.xxxAttribute()系列
  2. js属性:没有写在标签上的属性
    • 内置或自定义都可以直接使用对象的操作语法,进行操作
  3. 一些内置属性
    • 样式属性:元素.style
    • class属性:元素.className
    • classList属性:元素.classList,数组形式
      • 添加class:元素.classList.add("class名")
      • 删除class:元素.classList.remove("class名")
      • 切换class:元素.classList.toggle("class名")
    • 内容属性:元素.innerHTML
      • 可以解析标签
    • 内容属性:元素.innerText
      • 不可以解析标签
    • 表单控件内容:元素.value
      • 表单控件的值
    • HTML5新增的自定义属性:元素.dataset.属性名
      • 对象类型,记录了当前元素身上所有的 data- 开头的自定义属性
      • 可以使用对象语法进行操作

四、样式操作

  1. 设置:
    • 行内样式操作
      • 语法:元素.style.css属性名 = "css属性值"
  2. 获取:
    • 非行内样式操作
      • 正常浏览器的语法:getComputedStyle(元素).css属性名
      • IE低版本浏览器的语法:元素.currentStyle.css属性名
    • 解决兼容
function getStyle(ele, attr){if( ele.currentStyle ){return ele.currentStyle[attr];}else{return getComputedStyle(ele)[attr];}
}

五、尺寸类属性的快速获取

  1. 元素.clientWidth/Height
    • cont + padding
  2. 元素.offsetWidth/Height
    • cont + padding + border
  3. 元素.scrollWidth/Height
    • cont + padding + 可滚动的尺寸
  4. 元素.offsetLeft/Top
    • 相对于包含块偏移的距离
  5. 元素.scrollLeft/Top
    • 滚走了的距离,可设置
  6. 补充:元素.offsetParent
    • 获取元素的偏移量参考父级(包含块)
    • 一个元素 绝对定位 的时候,它是根据谁来进行定位的,那么这个元素的偏移量参考父级就是谁

六、标签操作

  1. 创建:var ele = document.createElement("标签名")
    • 插入节点:父元素.appendChild( ele );
  2. 删除:
    • 元素.remove()
    • 父元素.removeChild(子元素)
  3. 修改:
    • 元素.outerHTML = "<span>"+ 原标签内容 +"</span>"
  4. 替换:
    • 父元素.replaceChild(新节点, 旧节点)
  5. 克隆:
    • 元素.cloneNode(布尔)
      • true时表示克隆所有后代节点
  6. 获取:选择器
  7. 补充:
    • 创建文本节点:document.createTextNode('要写的文本内容')
    • 插入到指定节点之前:父元素.insertBefore(新节点, 基准节点);

八、练习

  1. 选项卡切换
  2. 使用html+css+js,模拟input的placeholder
  3. 使用html+css+js,模拟alert弹出框功能
  4. 使用html+css+js,模拟checkbox复选框
  5. 使用html+css+js,模拟radio单选框
  6. 密码强度
    • 数字,字母,特殊字符
    • 任意一种,弱
    • 任意两种,中
    • 三种,强
  7. 模拟聊天对话框
  8. 瀑布流布局

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

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

相关文章

在Linux上搭建Maven仓库的实战教程

引言 在Java开发中&#xff0c;Maven作为项目构建和依赖管理的重要工具&#xff0c;其仓库的搭建至关重要。本文将手把手教你如何在Linux系统上安装并配置Nexus Repository Manager 3&#xff08;简称Nexus 3&#xff09;&#xff0c;从而创建一个私有的Maven仓库。 步骤一&a…

Solidworks学习笔记

本内容为solidworks的学习笔记&#xff0c;根据自己的理解进行记录&#xff0c;部分可能不正确&#xff0c;请自行判断。 学习视频参考&#xff1a;【SolidWorks2018视频教程 SW2018中文版软件基础教学知识 SolidWorks自学教程软件操作教程 sw视频教程 零基础教程 视频教程】 h…

69内网安全-域横向CobaltStrikeSPNRDP

这节课主要讲spn和rdp协议&#xff0c; 案例一域横向移动RDP传递-Mimikatz rdp是什么&#xff0c;rdp是一个远程的链接协议&#xff0c;在linux上面就是ssh协议&#xff0c; 我们在前期信息收集的时候&#xff0c;得到一些hash值和明文密码可以进行一些相关协议的链接的&am…

【AI导师】利用Coding Agent完成AIGC编程

利用Coding Agent完成AIGC编程 一、前言二、Coding Agent三、1024code四、AI导师README项目初版功能定义代码结构设计方案函数方法设计方案迭代记录 一、前言 AI产品的发展确实在过去两年年中取得了显著进展&#xff0c;尤其是在编程领域。一开始&#xff0c;ChatGPT和类似的语…

每日一练:LeeCode-347. 前 K 个高频元素(中) - 【优先级队列】

本文是力扣LeeCode-347. 前 K 个高频元素 学习与理解过程&#xff0c;本文仅做学习之用&#xff0c;对本题感兴趣的小伙伴可以出门左拐LeeCode。 给你一个整数数组 nums 和一个整数 k &#xff0c;请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 示例 1: 输…

python统计学-单个总体样本容量的确定

简介 样本容量是指从总体中抽取的样本数量。单个总体样本容量的确定是指在给定的置信水平和误差范围内&#xff0c;确定从总体中抽取的样本数量。样本容量的确定有多种方法&#xff0c;常用的方法有&#xff1a; 正态分布法&#xff1a;如果总体服从正态分布&#xff0c;则可以…

模板 BIEE(二):Web日志从分析出发,在web页查看取数的sql方法

1 说明 1.1 环境 BIEE: Oracle Business Intelligence Enterprise Edition(Oracle商业智能企业版) 版本: OBIEE 12c Server 版本: 基于Oracle Analytics Server 6.4.0 版本 模板: 制造→生产成本→按前 10 个 GL 帐户列出的生产成本 1.2 背景 由《模板 BIEE (一):…

被罚11万元!跳槽员工忘关屏幕共享,向Nvidia展示窃取源码,遭前东家当场抓获

你有过在公司会议的屏幕共享中&#xff0c;因不慎曝光了一些隐私而深感尴尬的经历吗&#xff1f; 如果有的话&#xff0c;那你或许能想象到英伟达员工 Mohammad Moniruzzaman 被抓包时的感受——只不过&#xff0c;他的后果要严重得多。 据外媒 SiliconValley 报道&#xff0…

56.网游逆向分析与插件开发-游戏增加自动化助手接口-通过UI分析自动药水设定功能

内容来源于&#xff1a;易道云信息技术研究院VIP课 上一节内容&#xff1a;自动药水设定功能的逆向分析-CSDN博客 这次是假设没有之前的思路积累的话&#xff0c;怎样去找按钮事件。 通过ui当做切入点去做&#xff0c;就是一个窗口它显示不显示&#xff0c;游戏怎样控制这个…

传统项目基于tomcat cookie单体会话升级分布式会话解决方案

传统捞项目基于servlet容器 cookie单体会话改造分布式会话方案 ##引入redis,spring-session依赖 <!--redis依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>&…

ZigBee协议栈 -- Zstack协议栈(Zstack2.5.1a)

文章目录 Zstack 协议栈介绍ZStack 的安装ZStack 的结构系统初始化启动操作系统 设备的选择定位编译选项ZStack 中的寻址ZStack 中的路由OSAL 调度管理ZStack 中的串口通信设置配置信道配置 PANID 和要加入的网络最大有效载荷大小非易失性存储器 Zstack 协议栈介绍 CC2530 芯片…

设计模式(4)--对象行为(8)--状态

1. 意图 允许一个对象在其内部状态改变时改变它的行为。 2. 三种角色 上下文环境(Context)、抽象状态(State)、具体状态(Concrete State) 3. 优点 3.1 将与特定状态相关的行为局部化&#xff0c;并且将不同状态的行为分割开来。 3.2 使得状态转换显式化。 3.3 State对象可被共…

手机号码校验工具类(正则表达式)

手机号码有很多种方式&#xff0c;可以使用正则表达式&#xff0c;进行判断。网上有很多&#xff0c;不用去记&#xff0c;查就行。 import org.apache.commons.lang3.StringUtils; ​ import java.util.regex.Matcher; import java.util.regex.Pattern; ​ /*** 手机号码校验…

香橙派 ubuntu实现打通内网,外网双网络,有线和无线双网卡

当香橙派 ubuntu 连了有线&#xff0c;和无线时&#xff0c;默认请求外网时&#xff0c;只走一个网卡&#xff0c;如走了内网网卡&#xff0c;就只能访问内访问&#xff0c;访问不了外网&#xff1b;走了外网网卡就只能访问外网&#xff0c;访问不了内网&#xff1b; 实现双网…

大数据Doris(四十四):查询物化视图和自动匹配

文章目录 查询物化视图和自动匹配 一、​​​​​​​查询物化视图

炫酷按钮制作(HTML+CSS+Javascript)

实现效果&#xff1a; 当鼠标点击按钮时&#xff1a; 实现代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>div{margin-top: 20px;margin-left: 20px;}.button{border: soli…

9. 进程

9. 进程 1. 进程与程序1.1 main() 函数由谁调用1.2 程序如何结束1.2.1 注册进程终止处理函数 atexit() 1.3 何为进程1.4 进程号 2. 进程的环境变量2.1 应用程序中获取环境变量2.1.1 获取指定环境变量 2.2 添加/删除/修改环境变量2.2.1 putenv()2.2.2 setenv()2.2.3 命令行式添加…

IC入门必备!数字IC中后端设计实现全流程解析(1.3万字长文)

吾爱IC社区自2018年2月份开始在公众号上开始分享数字IC后端设计实现相关基础理论和实战项目经验&#xff0c;累计输出文字超1000万字。全部是小编一个个字敲出来的&#xff0c;绝对没有复制粘贴的情况&#xff0c;此处小编自己得给自己鼓鼓掌鼓励下自己。人生不要给自己设限&am…

自激振荡电路笔记 电弧打火机

三极管相关 三极管的形象描述 二极管 简单求解&#xff08;理想&#xff09; 优先导通&#xff08;理想&#xff09; 恒压降 稳压管&#xff08;二极管plus&#xff09; 基础工作模块 理想稳压管的工作特性 晶体管之三极管(“两个二极管的组合” ) 电弧打火机电路 1.闭合开…

vue 预览 pdf、word、excel

vue 预览 pdf、word、excel 这是之前做项目的时候涉及到的一个功能&#xff0c;当时做了之后就一直没有整理&#xff0c;其实也很简单&#xff0c;功能不多&#xff0c;只是预览&#xff0c;没有在线编辑的功能&#xff0c;所以呢&#xff0c;啊哈哈哈哈哈&#xff0c;一个插件…