一、节点的概念和查找操作
什么是节点
文档树所有包含的东西都可以称作节点;最关注的是元素节点
节点的分类
元素 文本 属性 注释等
查找节点是相对的操作
如果你拿html的子节点,就是html当中所有的节点但是不包含后代节点,只是子节点
后代和子要分清
祖先和父要分清
二、节点3属性
childNodes 拿到的是某个元素的子节点:包括元素子节点和文本子节点,如果有注释还有注释节点;
children 拿到的是某个元素的子元素节点
子节点:childNodes (儿子节点):
高级浏览器: 元素,文本(文本,空格,换行),注释
低版本浏览器: 元素,文本(不包括空格和换行),注释
子元素节点: children(儿子元素):
高级浏览器:元素
低版本浏览器:元素,注释
父节点和父元素
parentNode
parentElement
父节点:parentNode 其实就是父节点(元素) 所有浏览器都能使用
父元素:parentElement 父元素 所有浏览器都能用
第一个子节点 都认识 firstChild
第一个子元素节点 只有高级浏览器可以使用 firstElementChild
最后一个子节点 都认识 lastChild
最后一个元素节点 只有高级浏览器可以使用 lastElementChild
上一个兄弟节点 都认识 previousSibling
上一个兄弟元素节点 只有高级浏览器可以使用 previousElementSibling
下一个兄弟节点 都认识 nextSibling
下一个兄弟元素节点 只有高级浏览器可以使用 nextElementSibling
创建节点的三种方式:
Documet.write() 根本不用
* 第一种创建节点的方式:document.write();
* document.write()只能在页面加载的过程中使用,如果当页面加载完后,再使用会将其它的dom干掉
Obj.innerHtml +=
Document.createElement('想要创建的元素名')
元素对象.appendChild(被追加的元素对象);
五、节点常用方法
节点的增删改
* 以下方法都是父元素调用,操作子元素
* 插入节点: insertBefore(新节点,参照节点);
* 替换节点: replaceChild(新节点,被替换的节点);
* 删除节点: removeChild(被删除的节点);
* 追加节点:appendChild(被追加的节点);
节点.remove(pc端 ie不支持)
六 dom0级事件的绑定与解绑
在dom0级事件中 我们就是对一个元素的事件属性 赋值一个回调函数
// 所以我们只能设置一个回调函数 如果设置多个 就是覆盖操作
dom0级事件如何解绑? dom0级事件解绑的本质 就是断开事件属性 与 事件回调函数的链接
高级浏览器
dom2级事件的绑定 一共可以接受三个参数 1:事件类型(字符串传递 并且不带on) 2:回调函数 3:事件是否冒泡
有些事件是不能通过dom0级事件的绑定方式去绑定 只能用dom2级事件 比如transtionEnd
dom2级事件 是允许给一个事件类型 指定多个回调函数的 高级浏览器触发的顺序是 由上至下
dom2级事件的解绑 一共可以接受三个参数 1:事件类型(字符串传递 并且不带on) 2:回调函数 3:事件是否冒泡
在dom2级事件的解绑当中 必须和绑定时传入的参数 一模一样 函数地址必须保持一致
所以如果我们需要解绑dom2级事件 回调函数就必须在外边定义成 有名函数
低级浏览器
attachEvent 第一个参数事件类型 (字符串传递 且带on) 第二个参数回调函数
在低级浏览器当中 如果一个事件类型 指定多个回调函数 触发的顺序为由下至上
和高级相同 解绑的时候 也一定要保证参数和绑定时完全一致