JavaScript起步(十九-DOM节点二)| 一起学系列

154 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 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):移除当前节点的一个子节点,这个子节点必须存在于当前节点中 image.png

    • Node.cloneNode():克隆一个节点,并且可以选择是否克隆这个节点下的所有内容。参数为Boolean布尔值,表示是否采用深度克隆,如果为true,则该节点的所有后代节点也都会被克隆,如果为false,则只克隆该节点本身,默认值为true,节点下的内容会被克隆

     - 注意:克隆时,标签上的属性和属性值也会被赋值,写在标签行内的绑定事件可以被复制,但是通过JavaScript动态绑定的事件不会被复制

     - 克隆后依然需要使用添加节点代码才能添加到DOM树中      image.png - Node.hasChildNodes():没有参数,返回一个Boolean布尔值,来表示该元素是否包含有子节点(不区分节点类型,包括换行的文本节点)

    - Node.contains(child):返回一个Boolean值,来表示传入的节点是否为该节点的后代节点,不只是子级,子孙级也输出true

  • 其他方法:

       node.firstChild !== null;

       node.childNodes.length > 0;