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相对视口的右侧距离。 width: 该对象的宽度(包括边框),height: 该对象的高度(包括边框)

    

  设置样式不启用:

    document.styleSheet[0].disable = true;

posted @ 2020-01-04 20:29  早点睡觉吧  阅读(143)  评论(0编辑  收藏  举报