JS里更改节点/操作节点

161 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第23天juejin.cn/post/712312…

Document对象操纵节点

创建节点

document●createElement()创建一个元素节点  就是用js创建一个html标记,他前面是document对象

创建什么标记,()里就写什么标记名,创建完之后就是一个节点对象,创建完之后就相当于是一个空标记,创建完之后不会出现在html里,是存在一个变量里,在内存里,想加入文本,直接用获取文本节点方法并赋值,创建完想添加到body里,先找到body,再用添加节点的方法添加进去

添加节点

1、           ●appendChild(node)

说明:添加/移动节点(括号里的节点)到当前节点内部的末尾(新创建的节点)作为儿子添加进去

例子:Var divNode=document.createElement(“div”);//创建了一个div元素节点

Documents.getElementsByTagName(“body”)[0].appenChild(divNode);

 

2、           ●insertBefore(要添加或移动的节点,参考节点)

说明:添加到当前节点内部的参考节点前面

     移动到当前节点内部的参考节点的前面

 

删除节点

1、●remove()删除当前节点 想删除谁,就在remove()前面找到那个元素节点,然后●emover();该元素节点就被删除了

2、●removeChild(node)删除当前节点的子节点node,在前面找到父亲,括号里写被删除的子元素节点

复制节点

1、●CloneNode(true),深拷贝——除了复制节点,还会复制节点内所有的内容

2、●cloneNode(flase)浅拷贝——只制节点本身,复制一个空标记

遍历然后把它输出来

替换节点

语法:●replaceChild(新节点,被替换的节点)

说明:移动原有节点来替换指定节点

创建新的节点来替换指定节点

      先在●前面找到被替换的节点的父亲,再写语法

判断节点是否有子节点

语法: ●hasChildNodes();

说明,有的话结果返回true,没有返回false

空格也是作为文本节点存在

document对象访问相关节点

1、        更改为父节点(通过儿子找父亲)

语法:●parentNode   更改对象为当前节点的父节点

●parentElement  //返回当前元素的父元素节点(IE9以下不支持)

找节点大多数都是在找标记

说明:他们俩找的都是元素节点,

写法:先找到子元素节点,然后点后面写parentNode  .style.border=”1px solid #f00”;

2、        通过父亲找儿子

(1) ●firstChild  找父元素的第一个子节点

说明:包括文本节点,不仅仅是元素节点,如果父元素和子元素之间有间隔(例如换行时就有空格存在),那么实际父元素有一个子节点是空格,想用它就让父子元素挨上

(2) ●lastChild  找父元素的最后一个子节点

(3) ●firstElementChild;返回的是第一个子元素节点

(4) ●lastElementChild;返回的是第一个子元素节点

(3)和(4)父子之间有空格没关系

(5)●ChildNodes;更改为子节点(包含所有子节点)的集合(下标从0开始)包含空格文本节点

(6)●Children;更改为子元素(仅仅是子元素节点)的集合(下标从0开始)

 

以及和方式更改为子节点(集合方式)(返回值是伪数组)通过父元素找子节点

元素节点的集合可以写for循环遍历这个数组,不能用for in遍历,返回值数组的其实都是伪数组,伪数组其实是个对象,用for in就多循环了3次

3、更改为兄弟节点(找到兄弟节点)

(1)●nextSibling  找到下一个兄弟节点(包含文本节点)

(2)●previousSibling  找到上一个兄弟节点(包含文本节点)

(3)●nextElementSibling   返回的是下一个兄弟元素节点

(4)●previousElementSibling  返回的是前一个兄弟元素节点