1.ECMAScript js的语法标准
2.DOM Document object Model 文档对象模型,提供的方法可以让js操作html标签
3.BOM Browser Object Model 浏览器对象模型,提供的方法让js可以操作浏览器
注意:1. js里最大的boss是window,document只是window下的一个对象
-
document.documentElement 这个东西可以拿到html
document(在文档里,document是老大)
|
html
/ \
/ \
/ \
body head
/ / | \
/ / | \
/ / | \
/ | \ meta title style
二、DOM的属性
js ---> DOM --> html
js通过DOM去操作html标签
-
childNodes 返回当前对象下的所有子节点对象,会返回文本节点
注意: 在ie8下只会返回元素节点
-
nodeType 返回节点类型,元素节点返回1 文本节点返回3 注释节点返回8
-
children 返回对象下所有子元素节点,并且没有兼容问题
-
firstChild 返回第一个子节点,在IE8跟childNodes一样的表现
-
lastChild 返回最后一个子节点 同上
-
firstElementChild 返回最后一个元素节点,不兼容IE8
-
nextSibling 下一个兄弟节点 在主流的浏览器,可能会拿到除了元素节点以外的节点,在IE8里,只会返回元素节点,如果没有就返回null
-
previousSibling 上一个兄弟节点 同上
-
nextElementSibling 下一个兄弟元素节点 如果没有返回null 不兼容IE678
-
previousElementSibling 上一个 同上
-
parentNode * 返回父节点 没有兼容性
-
offsetParent 返回定位父级,如果都没有找到,最后返回body上,没有兼容问题
13.nodeName 返回标签的构造器 标签名大写字母
三、DOM的一些方法
createElement(‘p’)
? 这个里面是标签
? 新建元素节点,需要接受一个参数,参数就是需要新建的标签。
createTextNode()
? 新建文本节点
createComment()
? 新建注释节点
节点操作
添加元素节点
1. 父级.appendChild(子节点)
把子节点添加到父节点里去 往父级的所有子元素节点后 追加一个节点
2. 父级.insertBefore(子节点, 指定的子节点)
添加到指定的节点前面
-
父级.removeChild(需要删除的节点)
1.克隆节点 cloneNode
克隆节点, 克隆母体.cloneNode()
函数接收一个参数,这个参数是一个布尔值,默认false,浅复制, true深度复制
浅复制:只复制标签
深度复制:把跟这个标签对象相关的一些标签的行内的信息一起复制,不会复制js里的自定义属性。
这是我对dom学习的笔记,如果能够帮助到你,我会非常高兴。