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

浙公网安备 33010602011771号