学习笔记:DOM基础知识(重要)

/*获取页面中元素的方法:

    document.getElementById()

    context.getElementsByTagName(TAGNAME)把指定容器中子子孙孙所有标签名为

    TAGNAME的都获取到

    context.getELementsByClassName(CLASSNAME) 在IE6-8下不兼容

    document.getElementsByName():在浏览器中只对表单元素的name起作用

    document.body:获取body

    document.documentElement:获取整个html

    document.querySelector/context.querySelectorAll:通过选择器来获取一个元素

    通过它获取到的元素是不存在DOM映射关系的,在IE6-8下不兼容

    */

   /*描述节点和节点之间关系的属性(在标准的浏览器中会把空格和换行当作文本节点处理):

   childNodes:所有的节点(文本,注释和元素都有)

   children:获取所有的元素子节点(只有文本,没有元素也没有注释)

   IE6-8下获取的结果和标准浏览器获取的结果不一致

   parentNode:父亲节点

   previousSibling:获取上一个哥哥节点,不一定是元素,可能是文本/注释

   previousElementSibling:获取上一个哥哥元素节点

   nextSibling/nextElementSibling:获取下一个弟弟节点或者获取下一个弟弟元素节点

   lastChild/lastElementChild:获取最后一个子节点

   firstChild/firstElementChild:同上

  // 注意:所有带Element的在IE678下都不兼容

   */

   /*node类型的三个属性

   每个节点都有一个nodeType属性,用于表明节点的类型节点类型由Node类型中定义12个常量表示:

   页面中最常用的节点有四种:各自的nodeType为,nodeName为,nodeValue为

   元素:1,大写的标签名,null

   文本:3,#test,文本内容

   注释:8,#coment,注释内容

   document:9,#document,

   通过nodetype可以知道是不是文本

   */

 

学习笔记:DOM基础知识(重要)

 

/*动态操作DOM的方法:关于DOM的增删改

  createElement:创建

  document.createDocumentFragment():文档碎片

  appendChild:增加到某一个容器的末尾

  insertBefore:增加到某一个之前

  cloneNode(true/false):当前元素都克隆一份/只克隆元素的标签

  replaceChild:替换

  removeChild:删除

  get/set/removeAttribute:获取/设置/删除自定义属性

  */

 /*DOM的盒子模型属性:

 clientHeight:内容的高+上下填充(与溢出内容无关,已设定死高度)

clientWidth:内容的宽+左右填充(同上)

clientLeft:左边框宽度

clientTop:上边框宽度

 offsetWidth:clientWidth+左右边框

offsetHeight:clientHeight+上下边框

offsetLeft:当前元素的外边框距离父级参照物的内边框的偏移量

offsetTop:同上

offsetParent:当前元素的父级参照物

 scrollWidth:若无溢出同clientWidth;若有溢出,真实内容(包含溢出)+左填充

scrollHeight:同上

scrollLeft:滚动条卷去的宽度

scrollTop:同上

 window.getcomputedStyle(当前要操作的元素,当前元素的伪类null):获取所有经过浏览器计算过的样式(只要当前元素标签可在页面中呈现,都是经计算/渲染过的)

 window.currentStyle:同上,只在IE678用

 */