博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[妙味DOM]第一课:DOM基础概念、操作
阅读量:5171 次
发布时间:2019-06-13

本文共 2444 字,大约阅读时间需要 8 分钟。

知识点总结
  • childNodes、children子节点列表集合、nodeType节点类型、nodeName、nodeValue、attributes属性列表集合
childNodes和children都只包含子节点,不包含孙节点。        区别:        childNodes--            标准下:包含元素和文本节点,也会包含非法嵌套的子节点            非标准下:只包含元素节点,IE7以下不会包含非法嵌套的子节点(IE6)        children--        标准模式下和非标准模式下:只包含元素节点(推荐使用此方法)        nodeType 为节点类型,总共有12种节点,常用是:            元素节点 1            属性节点 2            文本节点 3            注释节点 8            文档节点 9        attributes[i].name 属性名称   attributes[i].value  属性值
  • firstChild、lastChild、nextSibling、previousSibling
--------------------------------------------------------        firstElementChild        firstChild        --------------------------------------------------------        firstElementChild : 只获取元素节点、ie6/7/8不支持        firstChild  :  标准下包括空白文本节点、非标准下元素节点        var oFirst = 元素.firstElementChild || 元素.firstChild        children[0]  第一个元素节点        同理:        lastElementChild          lastChild        nextElementSibling        nextSibling        previousElementSibling    previousSibling
  • parentNode offsetParent、offsetLeft offsetTop
parentNode  获取父级        offsetParent 表示有定位的父结点          没定位到body,有定位到定位的父结点         IE6:          自身元素定位:html          父级触发了layout:触发的那个父级(判断是否触发:元素.currentStyle.hasLayout)         offsetLeft\offsetTop              没有定位父级,是html          有定位父级,则是到定位的那个父级        IE6:           自身没定位,到body           自身定位,到定位的父级        getPos函数的封装,用来实现不管有没有定位,都是到body
  • style.width clientWidth offsetWidth、style.height clientHeight offsetHeight
style.width 行间样式宽        clientWidth 可视区宽(width+padding)        offsetWidth 占位宽(width+padding+border,即可视区宽+border)        height同样如此
  • getAttribute()、setAttribute()、removeAttribute()
[]和.无法获取用户自定义属性,而getAttribute可以获取自定义属性    getAttribute可以获取元素属性的实际值(src、href、url),IE7下还是会返回绝对路径    getAttribute(属性名称)    setAttribute(属性名称,属性值)    removeAttribute(属性名称)
  • createElement()、appendChild()、insertBefore()、removeChild()、replaceChild()
document.createElement(标签)        父级.appendChild(要添加的元素) 追加在最后        父级.insertBefore(要添加的元素,插入到哪个元素前面)        在IE下,如果第二个参数不存在,(IE8,ie7,ie6)会报错        在标准浏览器下,第二个参数不存在,会以追回的方式来添加,即:父级.appendChild(要添加的元素)        因此需要做兼容:        if (第二个参数) {
          父级.insertBefore(要添加的元素,插入到哪个元素前面)
       } else {
          父级.appendChild(要添加的元素       }
父级.removeChild(要删除的元素)         被替换节点的父级.replaceChild(新节点,被替换的节点),是剪切操作         appendChild、insertBefore、replaceChild都可以操作动态创建出来的节点,也可以操作已有的节点,都是剪切操作

 

转载于:https://www.cnblogs.com/joya0411/p/3557881.html

你可能感兴趣的文章
Jquery通过指定层次关系获取元素
查看>>
c# for 和 foreach 的区别
查看>>
docfx (一)
查看>>
HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别
查看>>
深度学习之前馈神经网络(前向传播和误差反向传播)
查看>>
IEnumerable<T>和IQueryable<T>区别
查看>>
(转)MFC界面风格
查看>>
Centos7 tmux1.6 安装
查看>>
二叉树(三)
查看>>
linux加密文件系统 fsck 无法修复一例
查看>>
【linux配置】VMware安装Redhat6.5
查看>>
AI自主决策——有限状态机
查看>>
iframe父子窗口取值
查看>>
利用Python进行数据分析_Pandas_数据结构
查看>>
《计算机组成原理》第6章:总线
查看>>
关于String str =new String("abc")和 String str = "abc"的比较
查看>>
Android软件架构及子系统介绍
查看>>
Java命名规范
查看>>
小学生算术
查看>>
BZOJ2823: [AHOI2012]信号塔
查看>>