什么是Element对象
DOM的标准规范中提供了 Elementi对象,该对象提供了HTML页面中所有元素所具有的属性和方法。
DOM标准规范中提供了Node对象,主要是依靠DOM节点树结构访问和更新HTML页面的内容。
而DOM标准规范中提供了 Element对象,主要是依靠DOM元素树结构访问和更新HTML页面的内容。
定位元素
<div class='container'>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
复制
-
getElementsByTagName
var container = document.getElementsByClassName("container")[0] var elements = container.getElementsByTagName("div"); console.log(elements)

-
getElementsByClassName
var container = document.getElementsByClassName("container")[0] 通过此方法获取不存在空白节点问题
-
querySelector
var container = document.body var css1 = container.querySelector('.container') 可以包含一个或多个,但只返回第一个
-
querySelectorAll
与上一个类似,返回全部
遍历元素
<div id="d">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
复制
- 获取指定节点的所有子元素
- 获取指定元素的所有子元素的个数
-
获取指定节点的第一个子元素
存在空白节点问题。,如果没有子元素,则返回null
- 获取指定节点的最后一个子元素
var d = document.getElementById('d')
d.firstChild.nextSibling.textContent = '666'
// 获取指定节点的所有子元素
console.log('children:', d.children)
// 获取指定元素的所有子元素的个数
console.log("childElementCount", d.childElementCount)
// 获取指定节点的第一个子元素
console.log("firstChild", d.firstChild)
// 获取指定节点的最后一个子元素
console.log("lastElementChild", d.lastElementChild)
复制
- 获取指定元素的前面相邻兄弟元素
- 获取指定元素的后面相邻兄弟元素
var d = document.getElementById('d')
// 获取下一个兄弟元素(获取到空白节点)
console.log(d.nextSibling)
// 获取到script脚本
console.log(d.nextSibling.nextSibling)
console.log(d.previousSibling)
console.log(d.previousSibling.previousSibling)
复制
属性操作
<p id="p1" class="text">12312321</p>
复制
-
获取
var pElement = document.getElementById('p1') console.log(pElement.getAttribute("class")) //返回text
-
设置
pElement.setAttribute("name", 'name_test') console.log(pElement.getAttribute('name'))
-
删除
pElement.setAttribute("name", 'name_test') pElement.removeAttribute('name') console.log(pElement.getAttribute('name')) 如果删除的属性不存在的话,不会引发任何异常
-
判断是否含有指定属性(是否含有指定属性,布尔值)
console.log(pElement.hasAttribute("class"))
-
用于判断是否存在属性(存在属性即返回true)
console.log(pElement.hasAttributes())
InnerHTML
可以直接添加HTML代码
var pElement = document.getElementById('p1')
pElement.innerHTML = '<span>test<span>'
复制