DOM API

本文详细介绍了DOM(文档对象模型)中的各种操作,包括通过getElementById、getElementsByTagName、getElementsByClassName和querySelectorAll等方法获取节点,以及节点的属性、样式、内容的获取和设置。此外,还讲解了如何创建、添加、删除和替换节点,以及节点的遍历和检查。内容涵盖了HTML5新增的DOM API以及兼容性处理,是理解网页元素操作的重要参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

----节点对象选择器

document.getElementById('id') 获取ID名称为 id的标签 返回对应的节点对象(单个) 如果文档内有多个 ID名称为 id的标签 只获取第一个

document.getElementsByTagName('p') 获取文档内的所有 p 标签 返回一个 DOM集合(NodeList) 类数组对象 哪怕没有找到只有一个也返回类数组集合

document.getElementsByClassName('des') 获取文档内的所有类名为 des 的标签 返回一个 DOM集合(NodeList) 类数组对象 哪怕没有找到只有一个也返回类数组集合

document.querySelector('#id') querySelector是H5 新增的DOM API 参数使用合法的css选择器即可  返回复合条件的第一个元素 (唯一)

document.querySelectorAll('div') querySelectorAll是H5 新增的DOM API 参数使用合法的css选择器即可  返回复合条件的节点集合 类数组对象(非唯一)

----节点对象属性

element.title  设置或返回元素的title属性
element.textContent  设置或返回一个节点和它的文本内容
element.innerText  设置或返回一个节点和它的文本内容
element.tagName  作为一个字符串返回某个元素的标记名(大写)
element.className  获取标签的class属性值

nodelist.length  返回节点列表的节点数目。
nodelist.item(idx)  返回某个元素基于文档树的索引 同 nodelist[idx]

----获取标签属性

可通过.点操作符直接获取属性,或者通过getAttribute()获取

----获取样式

获取行内样式:

获取实际样式:

 

兼容:

 

 

----获取节点内容

oHeader.innerHTML 获取标签内的实际内容 包括标签

oHeader.innerText 获取标签内的文本内容 谷歌火狐支持,ie8支持

oHeader.textContent 获取标签内的文本内容 谷歌火狐支持,ie8不支持

兼容:

function getInnerText(element) {
    if(typeof element.textContent=="undefined"){
        return element.innerText;
    }else{
        return element.textContent;
    }
}

----获取节点相关节点

oHeader.children 获取子元素 只有标签

oHeader.childNodes 获取子节点 包含文本节点与标签节点

oHeader.firstChild 获取第一个子节点 包含文本

oHeader.firstElementChild 获取第一个子标签节点

oHeader.lastChild 获取最后一个子节点 包含文本

oHeader.lastElementChild 获取最后一个子标签节点

var aLi = document.querySelectorAll('li')

aLi[0].parentElement 获取元素的父元素

aLi[0].parentNode 获取元素的父节点

aLi[1].nextElementSibling 获取元素的下一个兄弟标签节点

aLi[1].nextSibling 获取下一个兄弟节点

aLi[2].previousElementSibling 获取上一个兄弟标签节点

aLi[2].previousSibling 获取上一个兄弟节点

 

----创建和添加、删除节点标签

var cP = document.createElement('p') 创建标签节点

document.body.appendChild(cP)  添加cP到body中进行渲染

document.body.append(cP) append 是H5 WEB API 新增方法

document.body.innerHTML = '<p>添加的p标签</p>'  通过文本标签方式添加节点

document.write('<p>123</p>') HTML输出流 直接覆盖body中的内容

ELE.insertBefore(B,A)  在父节点ELE里面的节点A前面添加 新的节点B

element.removeChild(element.children[1])  element删除了element内的下标为1的子元素
element.remove( )  H5 DOM API 自己删自己

----节点替换拷贝

--拷贝

var oWrap = document.getElementById('wrap'); 

//cloneNode方法会对调用它的节点对象进行复制 传参true代表包括该节点的后代节点 不传参数表示只复制该节点本身
var cloneWrap = oWrap.cloneNode(true);
document.body.appendChild(cloneWrap);

--替换

var oWrap = document.querySelector('#wrap');
var oDes = oWrap.querySelector('#wrap .des');
var newDes = document.createElement('p');
newDes.innerHTML = '我会替换掉你';
oWrap.replaceChild(newDes,oDes);  用newDes替换oWrap内部的oDes

----节点检查

document.hasFocus()  返回布尔值,检测文档或元素是否获取焦点
element.hasChildNodes()  返回布尔值,检测节点对象是否包含任何子节点
element.isEqualNode(element2)  返回布尔值,判断element与element2是否是同一个节点
element.hasAttributes()  返回布尔值,判断当前节点对象是否包含属性
element.hasAttribute(property)  返回布尔值, 判断该节点是否拥有指定的 property 属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值