Element
节点对象对应网页的 Html 元素。
一、实例属性
1、元素特性的相关属性
Element.id
返回元素id
属性,属性可读写。Element.tagName
返回元素的大写标签名,与nodeName
属性的值相等。Element.dir
用于读写当前元素的文字方向,从左到右(ltr
),从右到左(rtl
)Element.accessKey
用于读写分配给当前元素的快捷键。Element.draggable
返回一个布尔值,表示当前元素是否可拖动,属性可读写Element.lang
返回当前元素的语言设置,属性可读写Element.tabIndex
返回一个整数,表示当前元素在 Tab 键遍历时的顺序,属性可读写。Element.title
鼠标悬浮时弹出的文字提示,可读写
2、元素状态的相关属性
Element.hidden
返回一个布尔值,表示当前元素的hidden
属性,可读写。与 CSS 设置相互独立,优先级低于 CSS 设置。Element.contentEditable
可设置属性,使得元素是否可编辑,三个值true
,false
,inhert
,属性可读写,Element.isContentEditable
返回一个布尔值,属性只读。Element.attributes
返回当前元素节点的所有属性节点类数组对象。Element.className
用来读写元素的class
属性。Element.classList
返回元素节点的class
属性的类数组对象。有以下方法:add()
增加一个classremove()
移除一个classcontains()
检查是否包含某个classtoggle()
将某个class移入或移出当前元素。第二个参数为布尔值,添加为true
,移除为false
。item()
返回指定索引位置的classroString()
将class列表转化为字符串
Element.dataset
返回一个对象,读取元素上data-
属性Element.innerHTML
用来设置某个节点的内容,可读写。Element.outHTML
返回一个当前元素节点所有 HTML 代码的字符串。Element.clientHeight
返回一个整数值,表示元素系欸但的 CSS 高度(单位像素),只对块级元素生效,行内元素返回0
。包括padding
,不包括border
、margin
Element.clientWidth
返回节点的 CSS 宽度,块级元素有效,行内元素返回0
,包括padding
,不包括border
、margin
。
// 视口高度document.documentElement.clientHeight// 网页总高度document.body.clientHeight复制代码
Element.clientLeft
等于元素节点左边框的宽度,如果没有设置左边框,或者行内元素则返回0
。Element.clientTop
元素顶部边框的宽度,其他同上。Element.scrollLetf
表示当前元素的水平滚动条向右侧滚动的像素数量Element.scrollTop
元素垂直滚动条向下滚动的像素数量。如果要查看整张网页的水平的和垂直的滚动距离,要从document.documentElement
元素上读取。Element.offsetParent
返回最靠近当前元素的,并且 CSS 的position
属性不等于static
的上层元素。如果该元素是不可见的(display
属性为none
),或者位置是固定的(position
属性为fixed
),则offsetParent
属性返回null
。Element.offsetHeight
返回元素 CSS 垂直高度(单位像素),包括元素本身高度、padding和border,及水平滚动条的高度(如果存在)。属性只读Element.offsetWidth
元素 CSS 水平宽度,其他同上。属性只读Element.offsetLeft
元素左上角相对于Element.offsetParent
节点的水平位移。Element.offsetTop
返回垂直位移。Element.style
用于样式的操作Element.children
返回当前元素节点的所有子元素的类数组对象。Element.childElementCount
返回当前元素节点包含的子元素节点的个数。Element.firstElementChild
返回当前元素的第一个子节点元素,Element.lastElementChild
返回最后一个子节点元素。没有返回null
Element.nextElementSibling
返回元素节点后一个同级元素节点,Element.previousElementSibling
返回元素节点的前一个同级元素节点。
实例方法
1、属性相关方法
getAttribute()
获取某个属性的值getAttributeNames()
返回元素所有的属性名setAttribute()
写入属性值hasAttribute()
某个属性是否存在hasAttributes()
元素是否有属性removeAttribute()
删除属性
Element.querySelector()
接受 CSS 选择器为参数,但是无法选中伪元素。返回父元素的第一个匹配的子元素。
Element.querySelectorAll()
接受 CSS 选择器作为参数,返回一个NodeList实例,包含所有匹配的子元素。
Element.getElementsByClassName()
方法返回一个HTMLCollection
实例,成员是当前元素节点的所有具有指定 class
的子元素节点。该方法与document.getElementsByClassName
方法的用法类似,只是搜索范围不是整个文档,而是当前元素节点。
Element.getElementsByTagName()
返回一个HTMLCollection
实例,成员是当前节点的所有匹配指定标签名的子元素节点。该方法与document.getElementsByClassName
方法的用法类似,只是搜索范围不是整个文档,而是当前元素节点。
Element.closest()
接受一个 CSS 选择器作为参数,返回匹配选择器的、最接近当前节点的一个祖先节点(包括当前节点本身)。没有则返回null
// HTML 代码如下//// var div03 = document.getElementById('div-03');// div-03 最近的祖先节点div03.closest("#div-02") // div-02div03.closest("div div") // div-03div03.closest("article > div") //div-01div03.closest(":not(div)") // article复制代码Here is div-01////Here is div-02////Here is div-03//
Element.matches()
返回一个布尔值,表示当前元素是否匹配给定的 CSS 选择器。
事件相关方法
Element.addEventListener()
添加事件的回调函数Element.removeEventListener
移除事件监听函数Element.dispatchEvent
触发事件
Element.scrollInteView()
滚动当前元素,进入浏览器可见区域,类似于window.location.hash
的效果。
该方法可以接受一个布尔值作为参数。如果为true,表示元素的顶部与当前区域的可见部分的顶部对齐(前提是当前区域可滚动);如果为false,表示元素的底部与当前区域的可见部分的尾部对齐(前提是当前区域可滚动)。如果没有提供该参数,默认为true。
Element.getBoundingClientRect()
返回一个对象,提供当前元素节点的大小、位置等信息,基本上就是 CSS 盒状模型的所有信息。
Element.getClientRects()
返回一个类似数组的对象,里面是当前元素在页面上形成的所有矩形(所以方法名中的Rect用的是复数)。每个矩形都有bottom、height、left、right、top和width六个属性,表示它们相对于视口的四个坐标,以及本身的高度和宽度。
Element.insertAdjacentElement()
方法在相对于当前元素的指定位置,插入一个新的节点。该方法返回被插入的节点,如果插入失败,返回null。
方法一共可以接受两个参数,第一个参数是一个字符串,表示插入的位置,第二个参数是将要插入的节点。第一个参数只可以取如下的值。
-
beforebegin
:当前元素之前 -
afterbegin
:当前元素内部的第一个子节点前面 -
beforeend
:当前元素内部的最后一个子节点后面 -
afterend
:当前元素之后
注意,beforebegin
和afterend
这两个值,只在当前节点有父节点时才会生效。
Element.insertAdjacentHTML(),Element.insertAdjacentText()
Element.insertAdjacentHTML
方法用于将一个 HTML 字符串,解析生成 DOM 结构,插入相对于当前节点的指定位置。
Element.insertAdjacentText
方法在相对于当前节点的指定位置,插入一个文本节点.
参数和Element.insertAdjacentElement()
一样。
Element.remove()
用于将当前元素节点从它的父节点移除。
Element.focus(),Element.blur()
Element.focus方法用于将当前页面的焦点,转移到指定元素上。
Element.blur方法用于将焦点从当前元素移除。
Element.click()
Element.click方法用于在当前元素上模拟一次鼠标点击,相当于触发了click事件。