5.5 删除节点 node.removeChild(child) node.removeChild() 方法从 DOM 中删除一个子节点,返回删除的节点。 5.6 复制节点 node.cloneNode() node.cloneNode() 方法返回调用该方法的节点的一个副本。 注意:
如果括号参数为空或者为 false ,则是浅拷贝,即只克隆复制节点本身,不克隆里面的子节点。如果括号参数为 true ,则是深度拷贝,会复制节点本身以及里面所有的子节点 5.8 三种动态创建元素区别 document.write() 直接将内容写入内容流,但文档流执行完毕,则它会导致页面全部重绘 element.innerHTML 将内容写入某个DOM节点,不会导致页面全部重绘 创建多个元素效率更高(不拼接字符串,采取数组形式拼接),结构稍复杂 document.createElement() 创建多个元素效率稍低,但结构更清晰 总结:不同浏览器下,innerHTML 效率要比 creatElement 高DOM 重点核心 关于dom操作,我们主要针对于元素的操作。主要有创建、增、删、改、查、属性操作、事件操作。 6.1 创建 document.writeinnerHTMLcreateElement 6.2 增appendChildinsertBefore 6.3 删removeChild 6.4 改 主要修改dom的元素属性,dom元素的内容、属性, 表单的值等修改元素属性: src、href、title等修改普通元素内容: innerHTML 、innerText修改表单元素: value、type、disabled等修改元素样式: style、className 6.5 查 主要获取查询dom的元素DOM提供的API 方法: getElementById、getElementsByTagName 古老用法 不太推荐H5提供的新方法: querySelector、querySelectorAll 提倡利用节点操作获取元素: 父(parentNode)、子(children)、兄(previousElementSibling、 nextElementSibling) 提倡 6.6 属性操作 主要针对于自定义属性。setAttribute:设置dom的属性值getAttribute:得到dom的属性值removeAttribute移除属性 6.7 事件操作 给元素注册事件,采取 事件源.事件类型 = 事件处理程序 鼠标事件 触发条件 onclick 鼠标点击左键触发 onmouseover 鼠标经过触发 onmouseout 鼠标离开触发 onfocus 获得鼠标焦点触发 onblur 失去鼠标焦点触发 onmousemove 鼠标移动触发 onmouseup 鼠标弹起触发 onmousedown 鼠标按下触发