携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第17天,点击查看活动详情
-
创建新节点的方法
-
document.createElement(“div”) 创建元素节点
-
document.createAttribute(“id”) 创建属性节点
-
document.createTextNode(“hello”) 创建文本节点
-
创建的新的节点是存储在内存中的,但是并没添加到DOM树上(即html结构中)
-
一般将创建的新节点存在变量中,方便使用
-
-
添加节点常用操作方法
-
parentNode.appendChild(child):将一个节点添加到指定父节点的子节点列表末尾
-
parentNode.replaceChild(newChild, oldChild):用指定的节点替换当前节点的一个子节点,并返回被替换掉的节点
-
parentNode.insertBefore(newNode, referenceNode):在参考节点之前插入一个拥有指定父节点的子节点,referenceNode必须设置,如果referenceElement为null,则newNode将被插入到子节点末尾
-
parentNode.removeChild(child):移除当前节点的一个子节点,这个子节点必须存在于当前节点中
-
Node.cloneNode():克隆一个节点,并且可以选择是否克隆这个节点下的所有内容。参数为Boolean布尔值,表示是否采用深度克隆,如果为true,则该节点的所有后代节点也都会被克隆,如果为false,则只克隆该节点本身,默认值为true,节点下的内容会被克隆
-
- 注意:克隆时,标签上的属性和属性值也会被赋值,写在标签行内的绑定事件可以被复制,但是通过JavaScript动态绑定的事件不会被复制
- 克隆后依然需要使用添加节点代码才能添加到DOM树中
- Node.hasChildNodes():没有参数,返回一个Boolean布尔值,来表示该元素是否包含有子节点(不区分节点类型,包括换行的文本节点)
- Node.contains(child):返回一个Boolean值,来表示传入的节点是否为该节点的后代节点,不只是子级,子孙级也输出true
- 其他方法:
node.firstChild !== null;
node.childNodes.length > 0;