节点操作

111 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

5.节点操作

一般地,节点至少拥有nodeType(节点类型)、nodeName(节点名称)和nodeValue (节点值)这三基本属性。

元素节点nodeType 为1,

属性节点nodeType 为2

文本节点nodeType为3(文本节点包含文字、空格、换行等)

5.1父节点

  • node.parentNode

获得离node最近一级的父节点;

找不到返回为null;

5.2 子节点

  • node.childNode

获得node的所有子节点,包括元素节点和文本节点(空格、换行);

可以通过nodeType来筛选出元素节点

  • node.children (常用)

获取node下所有的子元素节点

  • parent.firstChild

获得第一个子节点,包括文本节点;

  • parent.lastChild

获得最后一个子节点

  • parent.firstElementChild

获得第一个子元素节点

  • parent.lastElementChild

获得最后一个子元素节点

IE9以上支持

  • parent.Children[0]

返回第一个子元素节点,无兼容性问题

  • parent.Children[parent.children.length-1]

获得最后一个子元素节点,无兼容性问题

5.3 同级节点

  • node.nextSibLing

获得下一个同级节点,包括文本节点

  • node.previousSibLing

获得上一个同级节点

  • node.nextElementSibling

获得下一个元素节点

  • node.previousElementSibling

获得上一个元素节点

IE9以上支持

5.4 创建节点

  • document.creatElement( 'value' )

创建元素节点value,页面上并不会出现,因为没有添加节点

  • node.appendChild( 'value' )

在node节点下创建子节点value

若node下已有value节点,则会在原来的value下追加value节点

  • node.insertBefore(value , 指定元素)

在node下创建value子节点并插入到指定元素前面

5.5 删除节点

  • node.removeChild( child );

删除node下的child 子节点

5.6复制节点

  • node.cloneNode( );

将node节点拷贝一份并返回

括号里面为空或false 则为浅拷贝,不拷贝node到里面的内容

括号里面为true则为深拷贝