• DOM


    DOM描绘一个层次化的节点树

      节点的继承顺序

      Object-->EventTarget-->Node-->Element-->HTMLElement-->HTMLDivElement

      节点属性:

        nodeName(元素节点:标签名大写,文本节点:#文本内容,注释节点:#comment固定值)、nodeValue(元素节点:不可用,文本节点:文本内容,注释节点:注释内容)、nodeType(1:元素  2:属性 3:文本  8:注释 9:文档)

        判断一个元素节点是否是li标签:  nodeName === "LI"  或者  constructor === "HTMLLIElement"

      获取节点:

        document.getElementByID() 根据id获取单个元素节点(只能使用document调用)

        document.getElementByTagName()  根据标签名获取元素节点列表

        document.getElementByName()     根据name获取元素节点列表(只能使用document调用)

        document.getElementByClassName()   根据class获取标签元素节点列表

        document.querySelector()          根据选择器选择第一个元素节点    

        document.querySelectorAll()      根据选择器获取所有元素节点

      节点遍历:

        childNodes:所有子节点      (包括换行和注释)

        children: 所有元素节点 

        parentNode:   获取该节点的父节点  

        parentElement: 获取该节点的父元素,跟parentNode作用相同,因为任何标签的父节点都是元素节点

        firstChild: 第一个子节点

        firstElementChild: 第一个子元素节点

        lastChild:  最后一个子节点

        lastElementChlid:  最后一个子元素节点

        nextSibling:  下一个兄弟节点

        nextElementSibling: 下一个兄弟元素节点

        previousSibling:  上一个兄弟节点

        previousElementSilbling: 上一个兄弟元素节点

      创建节点:

        createElement():   通过标签名创建元素节点 

        createTextNode():  创建文本节点  (如果想重置节点的文本可以使用textContent)

        createDocumentFragment(): 创建碎片容器

      插入节点:

        parent.appendChild():  插入一个节点

        parent.insertBefore(newElem,targetElem): 在targetElem前插入一个节点

      替换节点:

        replaceChild(newElem,oldElem):  nowElem替换oldElem

      删除节点:

        remove():   移除自身节点

        removeChild():  移除子节点

      复制节点:

        cloneNode(boolean) :  复制节点,true:浅复制仅复制当前元素的标签及属性值  false:深复制可以将当前标签中的文本或者子元素都可以复制

      DOM属性:

        document.body:   body元素

        document.documentElement:   html元素

        document.title:  文档标题

        documetn.styleSheets:  css样式对象

        document.URL :   完整的URL

        document.domain:  域名

        document.getAttribute(): 获元素节点的标签属性  (元素节点也是一个对象,它既有节点的属性,也有对象的属性,而getAttribute获取的是重要的标签属性,对象属性一般没什么用,但有些标签属性和对象属性是互通的,因此有时也可以用对象.属性名来获取和设置标签属性)

        document.setAttribute(): 设置元素节点的标签属性

        document.removeAttribute():  删除元素节点属性

      DOM的样式:

        element.style.styleName = "";    设置元素节点的样式

        element.style.styleName            获取计算后样式(针对IE)

        elment.style.getComputeStyle    获取计算后样式(非IE)

      DOM常见属性:

        clientWidth、clientHeight:  元素宽高(不加border)

        offsetWidth、offsetHeight:  元素宽高(加border)

        offsetLeft、offsestTop:    如果父元素有定位,就是距离父元素的距离,没有就是根据body距离

        scrollWidth、scrollHeight:   获取元素的内容实际宽高

        scrollTop、scrollLeft:   返回滚动条距离顶部、左侧的距离

      获取计算后样式:

        elem.currentStyle.width   仅适用于ie浏览器

        getComputedStyle(elem).width   ie8以下不支持

        兼容写法:

    1         try{
    2             width=getComputedStyle(div).width;
    3         }catch(e){
    4             // 执行try时出错后执行catch,并且不报错
    5             // e error对象
    6             console.log(e);
    7             width=div.currentStyle.width;
    8         }
    9         console.log(width);

      获取该元素的CSS边框集合:

        elem.getBoundingClientRect();

         x,left 相对视口的左侧距离,y,top相对视口的顶部距离,bottom相对视口的底部距离,right相对视口的右侧距离。 该对象的宽度(包括边框),height: 该对象的高度(包括边框)

        

      设置样式不启用:

        document.styleSheet[0].disable = true;

  • 相关阅读:
    MySQL Cluster --01
    TPCC-MySQL(转自imysql.com)
    MySQL mha 高可用集群搭建
    Redis--初入
    Python之Fabric
    MySQL pt-table-checksum及pt-table-sync校验及修复主从一致性
    MySQL GTID
    MySQL Batched Key Access
    MySQL Block Nested-Loop Join(BNL)
    MySQL Index Condition Pushdown
  • 原文地址:https://www.cnblogs.com/wangjingzhi/p/12150288.html
Copyright © 2020-2023  润新知