注册 登录

清河洛

DOM基础:DOM介绍和查找元素

qingheluo2016-12-16清河洛263
DOM(Document Object Model)即文档对象模型,针对HTML和XML文档的API(应用程序接口)。DOM描绘了一个层次化的节点树,运行开发人员添加、移除和修改页面的某一部分。它已经成为表现和操作页面标记的真正跨平台、语言中立的方式。一.DOM介绍DOM中的三个字母,D(文档)可以理解为整个Web加载的网页文档;O(对象)可以理解为类似window对象之类的东西,可以调用属性和方法,这里我们说的是document对象;M(模型)可以理解为网页文档的树型结构。DOM有三个等级,分别是DOM1、DOM2、DOM3,并且DOM1在1998年10月成为W3C标准。IE中的所有D...

DOM(Document Object Model)即文档对象模型,针对HTML和XML文档的API(应用程序接口)。DOM描绘了一个层次化的节点树,运行开发人员添加、移除和修改页面的某一部分。它已经成为表现和操作页面标记的真正跨平台、语言中立的方式。

一.DOM介绍

DOM中的三个字母,D(文档)可以理解为整个Web加载的网页文档;O(对象)可以理解为类似window对象之类的东西,可以调用属性和方法,这里我们说的是document对象;M(模型)可以理解为网页文档的树型结构。

DOM有三个等级,分别是DOM1、DOM2、DOM3,并且DOM1在1998年10月成为W3C标准。

IE中的所有DOM对象都是以COM对象的形式实现的,这意味着IE中的DOM可能会和其他浏览器有一定的差异。

1.节点:加载HTML页面时,Web浏览器生成一个树型结构,用来表示页面内部结构。DOM将这种树型结构理解为由节点组成。

二、查找元素

getElementById():获取特定ID元素的节点,如果找到则返回该元素的HTMLDivElement对象,否则返回null

getElementsByTagName():获取相同元素的节点列表,返回一个对象数组HTMLCollection(NodeList)

使用索引来获取指定的节点(从0开始)
length属性来获取节点列表的元素数量

getElementsByName():获取相同名称(name属性)的节点列表

getElementsByClassName():获取相同css类名称(class属性)的节点列表

querySelector():返回文档中匹配指定的CSS选择器的第一元素

querySelectorAll():HTML5中引入的新方法,返回文档中匹配的CSS选择器的所有元素节点列表

getElementsBy*()和querySelectorAll()的区别

getElementsBy*()为一个动态的,会实时根据dom元素的变化来重新获取所有元素列表
querySelectorAll()是一个静态的,会获取运行该方法时的dom元素列表,而不会关心之后dom的变化

三、属性操作

点(.)操作符来获取和设置属性值

box.id //获取box元素的id属性
box.id='newid' //设置box元素的id属性

点(.)操作符只能获取和设置html元素的官方属性,一些自定义属性获取时会出现一些奇怪的兼容问题

class属性需要使用className属性来操作

tagName属性:获取节点的标签名

style属性:获取和设置该元素的内联样式

box.style //获取内联样式字符串
bos.style='color:red;font-size:20px;' //设置内联样式
box.style.display //获取内联样式中的指定属性
box.style.display='none' //设置内联样式中的指定属性

classList属性:返回calss属性列表

使用索引来获取指定的className(从0开始)
length:class属性列表的个数
value:以字符串形式返回class的值
add():添加指定className到列表中
remove():从列表中删除指定的className

data-*属性的操作

首先我们可以使用标准的DOM方法getAttribute()、setAttribute()或removeAttribute()来操作

另外我们可以通过dataset属性来操作
box.dataset.age; //获取data-age的属性值
box.dataset.age=27; //设置data-age的属性值
如果属性名称中还包含连字符(-),需要转成驼峰命名方式并去掉连字符
如属性data-this-is-my="xia",那么获取该值时用box.dataset.thisIsMy

元素的内容节点操作:innerHTML、innerHTML、outerText、outerHTML

getAttribute(key):获取属性的值,对于一些非标准的属性可以正常获取,但是点(.)操作符或出现问题

setAttribute(key,val):设置属性的值,属性不存在则添加,已存在则覆盖

removeAttribute(key):移除属性



网址导航