js基础--DOM节点

186 阅读2分钟

DOM节点

html可以看成一个节点树

节点类型:

  • 元素节点
  • 属性节点
  • 文本节点#text
  • 注释节点
  • 文档节点#document
  <html>
      <head>
        <title>123</title>
      </head>
      <body>
        <div class="className" id="idName">className</div>
      </body>
</html>

draw.png

属性:

属性描述
.parentNode获取父节点
.childNodes获取子节点
.firstChild第一个子节点
.lastChild最后一个子节点
.nextSibling下一个兄弟节点
.previousSibling上一个兄弟节点
  • Node
属性数值描述
Node.ELEMENT_NODE1对应元素节点Element
Node.ATTRIBUTE_NODE2对应属性节点Attr
Node.TEXT_NODE3对应文本节点Text
Node.CDATA_SECTION_NODE4对应文档中CDATA部(不会由解析器解析的文本)
Node.ENTITY_REFERENCE_NODE5对应实体引用
Node.ENTITY_NODE6对应实体类型Entity
Node.PROCESSING_INSTRUCTION_NODE7对应处理指令
Node.COMMENT_NODE8对应注释节点Comment
Node.DOCUMENT_NODE9对应文档节点Document
Node.DOCUMENT_TYPE_NODE10对应文档类型节点DocumentType
Node.DOCUMENT_FRAGMENT_NODE11对应文档片段节点DocumentFragment
Node.NOTATION_NODE12对应DTD中声明的符号
  • dom对象 element

    <div id="nodeDiv">
      <div></div>
    </div>
    
    <script>
       const byId = document.getElementById("nodeDiv");
    <script>
属性描述示例
dom对象.nodeType节点是不是元素byId.nodeType==1
dom对象.nodeName元素的标签名var value = byId.nodeName (DIV)
  • 节点关系
属性可读描述示例
element.parentElement只读获取父元素var parent = node.parentElement
dom对象.children只读获取所有子元素var elements = node.children;
dom对象.childElementCount只读获取子元素数量var count = node.childElementCount;
dom对象父.firstElementChild只读第一个子元素var element = node.firstElementChild;
dom对象.lastElementChild只读最后一个子元素var element = node.lastElementChild;
dom对象.nextElementSibling只读下一个元素var element = node.nextElementSibling;
dom对象.previousElementSibling只读上一个元素var element = node.previousElementSibling;
  • 方法
方法描述
document. createElement("标签名")创建节点
document. createTextNode("文本")创建节点
dom对象.appendChild(被插入节点)插入到dom节点
父元素.insertBefore(被插入节点,在....之前),在....之前插入
父元素.removeChild(被删除节点)删除结点
父元素.replaceChild(新节点,被修改的节点)替换节点
cloneNode(boolean)克隆节点,true子元素都克隆.flase父元素

操作节点流程:

  • 创建节点document.createElement("标签名")
  • 操作内容/操作样式/操作属性
  • 插入节点/在。。之前插入
  • 替换节点/删除节点/克隆节点