1 简介
- Element节点对象对应网页的HTML元素
-
2 属性
2.1 元素特性相关属性
2.1.1 Element.id
-
2.1.2 Element.tagName
-
2.1.3 Element.draggable
-
2.1.4 Element.lang
-
2.1.5 Element.tabIndex
该属性返回一个整数
-
2.1.6 Element.title
-
2.2 元素状态的相关属性
2.2.1 Element.attributes
属性返回一个类似数组的对象
-
2.2.2 Element.className
该属性用来读写当前元素节点的class属性
-
2.2.3 Element.classList
该属性返回一个类似数组的对象
- 当前节点的每个class就是这个对象的一个成员
- classList对象有如下方法:
- add(): 增加一个class
- remove(): 移除一个class
- contains(): 检查当前元素是否包含某个class
- toggle(): 将某个class移入或移出当前元素
- item(): 返回指定索引位置的class
- toString(): 将class的列表转为字符串
- toggle():
- 网页元素可以自定义添加
data-
属性,用来添加数据 ```javascript
document.getElementById(“myDiv”).dataset.timestamp;
2. dataset上面的各个属性返回都是字符串
2. 除了dataset读写data-属性,也可以使用Element.getAttribute()和Element.setAttribute()通过完整的属性名读写这些属性
<a name="XeWMA"></a>
### 2.2.5 Element.innerHTML
<a name="MEBeo"></a>
### 2.2.6 Element.clientHeight , Element.clientWidth
<a name="dFWfy"></a>
#### clientHeight
1. `Element.clientHeight`属性返回一个**整数值**,单位是像素
1. 只对块级元素生效,对于行内元素返回0
1. 返回的整数值 = **元素本身的高等+padding部分**;
1. 不包含border和margin;如果有水平滚动条,要减去水平滚动条的高度
1. `document.documentElement`的`clientHeight`属性返回当前视口的高度,即浏览器窗口的高度;等同于`window.innerHeight`-水平滚动条的高度
1. `document.body`的高度是网页的实际高度
<a name="EIp7e"></a>
#### clientWidth
1. 效果和clientHeight一样
<a name="AYt1F"></a>
### 2.2.7 Element.clientLeft 和Element.clientTop
<a name="FTShS"></a>
#### clientLeft
1. 该属性等于元素左边框的宽度
1. 如果没有设置左边框或者是行内元素,则返回0
1. 该属性返回整数值
<a name="UW7pZ"></a>
#### clientTop
1. 效果等同于clientLeft
1. 返回元素上边框的宽度
<a name="sd479"></a>
### 2.2.8 Element.scrollHeight 和 Element.scrollWidth
<a name="yCFme"></a>
#### scrollHeight
1. 返回值是一个整数,表示当前元素的总高度,包括溢出容器、当前不可见的部分
1. 该值包括padding,不包括border、margin以及水平滚动条的高度
1. 整张网页的总高度可以通过:
- document.documentElement.scrollHeight
- document.body.scrollHeight
<a name="LA5jy"></a>
### 2.2.9 Element.scrollLeft 和 Element.scrollTop
<a name="uXv15"></a>
#### scrollLeft
1. 该属性可读写
1. 表示当前元素的水平滚动条向右滚动的像素数量
<a name="ZmXhk"></a>
### 2.2.10 Element.offsetParent
1. 该属性返回最靠近当前元素的,并且CSS的position属性不等于static的上层元素
```html
<div stype="position:absolute">
<p>
<span>hello</span>
</p>
</div>
- 上面代码中
span
的offsetParent将返回div
元素 - 该属性主要用来确认子元素位置偏移的计算基准;Element.offsetTop和Element.offsetLeft就是offsetParent元素计算得来
- 如果该元素是不可见的(
display:none
)或者位置是固定的(position
:fixed
),offsetParent
返回null -
2.2.11 Element.offsetHeight,Element.offsetWidth
offsetHeight
返回一个整数,表示元素的垂直高度
- 包括元素本身的高度,padding和border,以及水平滚动条的高度(如果存在)
只读属性,比
Element.clientHeight
多了边框的高度2.2.12 Element.offsetLeft,Element.offsetTop
offsetLeft
返回当前元素左上角相对于
Element.offsetParent
节点的水平位移offsetTop
-
2.2.13 Element.style
方法
事件相关的方法
-
其他方法
Element.getBoundingClientRect()
该方法返回一个对象,具有如下属性:
- x: 元素左上角相对视口的横坐标
- y: 元素左上角相对视口的纵坐标
- height: 元素高度
- width: 元素宽度
- left: 元素左上角相对视口的横坐标,和
X
属性相等 - right: 元素右边界相对于视口的横坐标(等于x + width)
- top: 元素左上角相对视口的纵坐标,相当于Y属性
- bottom:元素底部相对于视口的纵坐标(等于y + height)