节点概述

一般来讲节点至少拥有下面三个属性
            1.nodeType:节点类型
            2.nodeName:节点名称
            3.nodeValue:节点值
  • 元素节点的nodeType为1;
  • 属性节点的nodeType为2
  • 文本节点的nodeType为3(文本节点包含文字,空格,换行等)

在实际开发中,节点的主要操作是元素节点

 

节点层级:利用DOM树可以吧节点划分为不同的层级关系,最常见的是父子兄层级关系

 

        1.父级节点
            node.parentNode
        2.子节点
            1.parent.Node.childNodes(标准),
                返回包含指定节点的子节点的集合,该集合为即时更新的集合
                注意:所有的子节点,包含元素节点 文本节点等等(firstChild,lastChild)也一样
            
            2.parentNode.children(非标准),它是一个只读属性,只返回子元素节点
            各个浏览器均支持,可放心使用(也是实际开发中常用的)

  实际开发中 选择第一个子元素且没有兼容性问题

                parentNode.children[index];
        3.兄弟节点
            1.nextSibling 下一个兄弟节点 包含元素节点 文本节点
                nextElementSibling  获取上一个元素节点(存在兼容性问题,IE9以上才支持)
            2.previousSibling 上一个兄弟节点 包含元素节点 文本节点
                previousElementSibling 上一个元素节点(存在兼容性问题,IE9以上才支持)

 

            如何解决兼容性问题:自己封装一个兼容性的函数
             
   function getNextElementSibling(element) {
            var el = element;
            while (el = el.nextSibling) {
                if (el.nodeType === 1) {
                    return el;
                }
            }
            return null;
        }
            

 

 

posted @ 2020-10-21 21:05  xiaochong123  阅读(304)  评论(0编辑  收藏  举报