节点操作

节点概述
网页中的所有内容都是节点(标签、属性、文本、注释等),在DOM 中,节点使用 node 来表示。

HTML DOM 树中的所有节点均可通过 JavaScript 进行访问,所有 HTML 元素(节点)均可被修改,也可以创建或删除。
节点树
一般地,节点至少拥有nodeType(节点类型)、nodeName(节点名称)和nodeValue(节点值)这三个基本属性。
节点介绍
利用 DOM 树可以把节点划分为不同的层级关系,常见的是父子兄层级关系。
父级节点
node.parentNode 可以返回某节点的父节点,注意是最近的一个父节点
如果指定的节点没有父节点 则返回null
子节点
parentNode.childNodes 返回指定节点的子节点集合
注意 返回的是所有的子节点 包括 元素节点、文本节点等
我们只需要子节点里的元素节点 所以我们不推荐使用这个
parentNode.children 返回所有的子元素节点
它只返回子元素节点,不会返回其它节点 所以这个是我们必须掌握的
第一个子节点 parentNode.firstChild 返回第一个子节点 也是包含所有节点
最后一个子节点 parentNode.lastChild 返回最后一个子节点 也是包含所有节点
第一个子元素节点 parentNode.firstElementChild 返回第一个子元素节点
最后一个子元素节点 parentNode.firstElementChild 返回最后一个子元素节点
注意: 上面两个返回第一个和最后一个的子元素节点的方法有兼容性问题 ie9以上才支持
实际开发中,firstChild 和 lastChild 包含其他节点,操作不方便,而 firstElementChild 和 lastElementChild 又有兼容性问题,那么我们如何获取第一个子元素节点或最后一个子元素节点呢?
解决方案:
第一个子元素节点: parentNode.children[0]
最后一个子元素节点: parentNode.children[parentNode.children.length - 1]
删除节点
node.removeChild() 方法从 node节点中删除一个子节点,返回删除的节点。
复制(克隆)节点
node.cloneNode(); 方法返回调用该方法的节点的一个副本。
node.cloneNode(); 括号为空或者里面是false 称为浅拷贝 只复制标签不复制里面的内容
node.cloneNode(true); 括号为true 称为深拷贝 复制标签复制里面的内容
创建元素的三种方式
document.write()、element.innerHTML、element.createElement()
区别:
document.write() 创建元素 如果页面文档流加载完毕,再调用这句话会导致页面重绘
innerHTML 是将内容写入某个dom节点,不会导致页面重绘
innerHTML 创建多个元素效率更高(不要用拼接字符串的方法,用数组的方法拼接),结构稍微复杂
element.createElement() 创建多个元素的效率稍低一点,但是结构清晰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值