Dom学习笔记

DOM

document object model  文档 对象  模型

 

文档:html页面

文档对象:页面中的元素

文档对象模型: 文档对象模型是w3c

为了能够让js去操作页面中的元素,定义的一套标准

DOM会把当前文档看作一棵树 树种的每一个元素就是文档树 的一个节点

同时定义了很多方法 来操作每一个元素

每个方法又有各自的属性

 

DOM基础

childNodes 【兼容性问题不推荐使用用children代替】

是属性不加括号  他前面有一个对象调用要加上他的对象

只包含子级一级节点 不包含孙级一下

非法嵌套也会 包含在总数里

元素.childNodes(子节点列表集合)只读属性

dom节点 有十二种

元素节点 nodeType  1

文本节点 nodeType 3

属性节点 nodeType 2

有兼容性问题  

标准浏览器  有文本+元素节点 换行符是文本节点

非标准 只是元素节点 

nodeType属性

当前元素的节点类型

 

获取元素属性列表集合 【只读】

元素.attributes  获取  style  id class等
oUl.attributes[0].name

oUl.attributes[0].value

oUl.attributes[0].nodeType

children跟 children区别是

标准浏览器下 只包含 元素类型节点+识别非法嵌套的标签

非标准下 只包含元素类型节点

======================================================================

firstChild \ firstElementChild
获取子元素里的第一个
lastChild \ lastElementChild

firstChild 同样的兼容性问题会识别 文本节点

firstElementChild【只读】/IE6不支持/不会识别文本/

兼容方案:

var oFirst=oUl.firstElementChild ||oUl.firstChild

oFirst.style.background=’red’

image

标准浏览器会返回空  空就是flase  就是第二种方法 给文本节点 设计样式就报错

所以用子元素的第0个比较靠谱点

上面的 都有这个兼容性问题

======================================================================

image

获取子元素里的最后一个nextSibling \ nextElementSibling
获取指定元素的下一个兄弟节点
previousSibling \ previousElementSibling
获取指定元素的上一个兄弟节点

没有节点的话也会出兼容性问题

======================================================================



 

parentNode【只读】 就是当前节点父级节点
获取父节点,点击链接隐藏整个li

parentNode&offsetParent区别

元素.offsetparent 只读 属性 父节点

offsetparent 会变  有定位的父节点  多个就是  离着当前元素有定位属性的的父节点

bug: ie6。7如果没定位父级。默认body。如果有定位则html  如果当前元素的某个父级元素

触发 了hashlouyt  则offsetparent会把父级元素指向触发元素

 

 

元素位宽高

只读 属性 当前元素到父级(offsetparent)的距离  偏移值

offsetLeft \ offsetTop

bug:ie7以下

如果自己没有定位

offsetLeft \ offsetTop 是body的距离

当前元素有定位

就正常获取

-------------

当前元素有定位

但是没有定位父级

offsetparent – >body

offsetparent –>html 

offsetLeft  默认margin是10像素  标准是8

offsetTop 是15像素 

offsetWidth \ clientWidth

image

 

 

 

 

 

 

 

 

 

 

操作元素属性的第三种方式

有兼容性问题,标准下不能获取两层
获取:getAttribute(名称)
设置:setAttribute(名称, 值)
删除:removeAttribute(名称)
第三种方式的好处:自定义属性、相对网址

创建和插入元素

创建DOM元素
createElement(标签名)        创建一个节点
appendChild(节点)            追加一个节点
例子:留言板插入内容
插入元素
insertBefore(节点, 原有节点)    在已有元素前插入
例子:倒序留言板插入内容

删除和替换元素

删除DOM元素
removeChild(节点)        删除一个节点
例子:删除留言
替换DOM元素
replaceChild(节点, 已有节点)    替换节点

转载于:https://www.cnblogs.com/aix1314/p/3932660.html

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

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

相关文章

小程序 WXS响应事件(滚动菜单栏tab吸顶)

小程序 WXS响应事件(滚动菜单栏tab吸顶) 解决问题: 小程序页面滚动,tab触顶吸顶 解决办法: 1)页面滚动事件中监听处理(不推荐) 缺点:在安卓端性能非常差,吸…

PWA(Progressive Web App)入门系列:消息通讯

前言 serviceWorker 的能力决定它要处理的事情,网站页面的部分逻辑处理会转移到 serviceWorker 层进行处理,这里就要页面层和 serviceWorker 层进行交互来实现消息通讯。 下面就说一下两个环境下的消息通讯。 窗口向 serviceWorker 通讯 这里列举出窗…

查看Linux上程序或进程用到的库

为什么80%的码农都做不了架构师?>>> ldd /path/to/program 要找出某个特定可执行依赖的库,可以使用ldd命令。这个命令调用动态链接器去找到程序的库文件依赖关系。 objdump -p /path/to/program | grep NEEDED 注意!并不推荐为任…

超方便的 IndexDB 库

前言 做为 Web 浏览器层的本地存储,IndexDB 做为一个很好的选择,几乎可以存储任意类型的数据,且是异步的。但是正常使用方式下需要在监听各种事件来处理结果,不是很方便,下面就对这一层进行了包装,使用方便…

小程序 WXS响应事件(超出两屏显示返回顶部按钮)

小程序 WXS响应事件&#xff08;超出两屏显示返回顶部按钮&#xff09; 两种解决办法&#xff1a; view页面形式实现&#xff1a; <wxs module"test" src"./test.wxs"></wxs> // 引入wxs<scroll-viewbindscroll"onPageUpdate"…

BP网络识别26个英文字母matlab

wx供重浩&#xff1a;创享日记 对话框发送&#xff1a;字母识别 获取完整源码源工程文件 一、 设计思想 字符识别在现代日常生活的应用越来越广泛&#xff0c;比如车辆牌照自动识别系统&#xff0c;手写识别系统&#xff0c;办公自动化等等。本文采用BP网络对26个英文字母进行…

C#多线程写日志

由于程序是3层架构的&#xff0c;所有多线程记录日志成了比较棘手的问题&#xff0c;以前还真就没有在意过写日志的问题&#xff0c;认为不过是写文件罢了~~&#xff01;如今发现原来要实现文件共享&#xff0c;并且能够使多线程同时操作日志还不能相互冲突&#xff0c;真的很麻…

PWA(Progressive Web App)入门系列:Sync 后台同步

前言 当我们在一些地下停车场&#xff0c;或者在火车上、电梯等无法避免的信号不稳定的场所&#xff0c;使用网站应用处理一些表单操作或者上传数据的操作时&#xff0c;面临的将是网络连接错误的响应&#xff0c;使用户的操作白费。 而此刻 PWA 的 Sync API 就很好的解决了这…

PWA(Progressive Web App)入门系列:安装 Web 应用

前言 在传统的 Web 应用中&#xff0c;通常只能通过在浏览器的地址栏里输入相应的网址才能进行访问&#xff0c;或者把网页地址创建到桌面上通过点击&#xff0c;然后在浏览器里打开。 传统模式下&#xff0c;图标、启动画面、主题色、视图模式、屏幕方向等等都无法去自定义和…

「工具」IndexDB 版备忘录

前言 工作日常需要做一些备忘录&#xff0c;记录一些要做的事。在 Mac 上有使用系统的备忘录&#xff0c;但功能偏弱且文本格式调整不方便。再就是使用浏览器找专门的备忘录网站&#xff0c;功能是满足了&#xff0c;但是链路长&#xff0c;没有桌面软件直接。 所以最后干脆自…

「工具」PWA Manifest图标及 favicon.ico 生成工具

PWA 其中有一个能力就是把网站安装到系统桌面&#xff0c;以原生应用的体验来运行网站&#xff0c;使用户无需再找开浏览器输入网址进入网站&#xff0c;而是可以直接点击安装好的应用直接运行&#xff0c;给使网站访问缩短路径及增加网站的曝光度。 其中有一个问题就是需要生…

各种浏览器缓存浅析

前言 目前浏览器的缓存类型众多&#xff0c;HTTP Cache、Disk Cache、Memory Cache、ServiceWorker Cache、Push Cache 等等&#xff0c;这些缓存是如何产生的&#xff1f;命中优先级是怎么样&#xff1f;又该如何去使用它们&#xff1f; Disk Cache、Memory Cache Disk Cac…

[工具]TS 视频合并工具

简介 当下载 m3u8 资源时&#xff0c;通常产生的是多个 ts 视频文件&#xff0c;所以需要借助某些工具来将这些 ts 视频片段整合为一个视频文件。 本软件主要解决的就是这个问题&#xff0c;底层基于ffmpeg&#xff0c;可正常运行在 Windows 和 Mac 平台。不仅可以合并 ts 为单…

[会议分享]2020全球软件大会分享-PWA在项目中的最佳实践

大会地址&#xff1a;https://www.bagevent.com/event/1233659# PPT下载&#xff1a;https://download.csdn.net/download/lecepin/12871373

「浏览器插件」非常好用的JSON-View

Chrome 商店&#xff1a;地址 下载地址&#xff1a;地址 Github&#xff1a;https://github.com/lecepin/lp-json-view 查看/格式化 二合一。 功能 自动识别 JSON 内容&#xff0c;并在页面右下角创建切换按钮。支持展开/折叠节点。支持全部展开、全部折叠、展开一二三层节点…

Github Action 快速构建 Electron 应用

前言 在开发 Electron 应用时&#xff0c;比较耗时的部分应该是构建打包的过程&#xff0c;像用 electron-builder 这种打包工具来说&#xff0c;它会根据你要打包的系统来下载应用的系统镜像打包工具&#xff0c;由于这些镜像的源文件托管在 Github 上&#xff0c;且 nodejs …

「浏览器插件」网址小尾巴终结者

前言 在我们日常的开发调试中&#xff0c;会在 URL 上添加一些特殊的小尾巴 用来显示调试界面或者开启一些特殊功能&#xff0c;当你接触了越来越多的系统后&#xff0c;你需要使用的小尾巴就变得越来越多&#xff0c;记忆和使用成本非常大&#xff0c;以及含有小尾巴的网址 在…

什么是低代码?

低代码 是一种软件开发方法&#xff0c;可以减少手工编码的过程&#xff0c;尽可能快的交付应用程序。 低代码平台 是工具的合集&#xff0c;这些工具可以通过建模和图形界面来进行应用程序的可视化开发。低代码使开发人员可以跳过手工编码&#xff0c;从而加快了应用程序的开…

什么是 LOW-CODE ?

低代码平台的特征 可视化建模工具 使用可视化方法和模型创建应用程序比使用代码进行开发要快。具有可视化建模功能的低代码平台&#xff0c;使用内置的组件&#xff0c;以任何人都可读的形式表示任何信息&#xff0c;从没有技术技能的常规企业用户到专业开发人员。 开箱即用…

简简单单 上传下载

背景 我们经常会有手机向电脑传文件 或者 电脑像手机传文件的需求。 而通常的解决方案是&#xff1a;手机上安装一个聊天软件&#xff08;如微信&#xff09;&#xff0c;电脑上安装一个聊天软件&#xff0c;然后自己给自己传输&#xff0c;然后进行下载。 这种方式是很麻烦的…