DOM(文档对象模型)

本文详细介绍了DOM(文档对象模型)的相关操作,包括通过各种方式获取元素,如getElementById、getElementsByTagName等;节点的关系属性,如parentNode、childNodes等;属性操作,如设置和获取元素样式及属性;节点的增删改操作,如appendChild、replaceChild等;以及常见的事件处理,如onclick、onmouseover等,并展示了如何通过事件对象进行更精确的事件响应处理。
DOM(文档对象模型)
一.获取元素的方法
1、获取元素的方法
document.getElementById(); 通过id获取元素 获取结果是一个DOM对象 只有document对象存在这个方法  没有获取到元素返回null
context.getELementsByTagName('');  通过标签名获取元素,获取结果是一个DOM对象的集合(类数组) context(上下文)可以是document也可以是其他DOM对象
context.getElementsByClassName(); 通过类名获取元素,获取结果是一个DOM对象的集合(类数组)context(上下文)可以是document也可以是其他DOM对象
context.getElementsByName();通过name属性获取元素,一般不推荐使用,当获取name属性相同的radio或checkbox时使用
document.querySelector(选择器);  //获取单个
document.querySelectorAll(选择器); //获取多个
==============================================
二:节点关系属性
节点类型:nodeType
element 1
text 3
comment 8
previousSibling   上一个兄弟节点   (元素、注释、换行)
previousElementSibling    上一个元素兄弟节点
nextSibling   下一个兄弟节点   (元素、注释、换行)
nextElementSibling    下一个元素兄弟节点
childNodes   所有子节点   (元素、注释、换行)
children    所有元素子节点
firstChild
firstElementChild
lastChild
lastElementChild
parentNode  父节点
========================================
三:属性操作
样式: 设置 ele.style.attr
获取   ele.style.attr   只能获取行内样式
window.getComputedStyle(ele).attr  标准浏览器下获取样式
ele.currentStyle.attr   ie低版本
DOM对象属性操作
ele.attr   一般用来设置或获取标签的内置属性  也可以设置自定义属性,不改变DOM结构(不在标签上显示),只存在对象上
元素属性或标签属性
setAttribute() 可以设置内置属性(跟ele.attr没有区别)
设置自定义属性时会改变DOM结构(显示在标签上)
getAttribute() 获取属性值
========================================
四:节点的增删改
1.document.createElement('li')  创建元素节点
2.ELE.appendChild(ele);  在元素末尾插入指定的元素
3.oldEle.parentNode.insertBefore(newEle,oldEle);  在指定元素之前插入节点,这个方法需要指定元素的父元素调用
4.oldEle.parentNode.replaceChild(newEle,oldEle);  用新的元素替换指定的元素
5.ele.parentNode.removeChild(ele);  移除节点
6.ele.cloneNode()    浅克隆(只复制元素本身)
7.ele.cloneNode(true) 深克隆(复制元素及其所有后代)
列表排序
将获得li类数组的元素添加到数组中;用sort方法排序,遍历添加到ul中
============================================
五:事件
onclick   单击事件
ondblclick  双击事件
onmouseover   鼠标移入
onmousemove   鼠标移动
onmouseout     鼠标移出
onmousedown       鼠标按下
onmouseup    鼠标抬起

box.onmousedown = function (event) {//event事件对象
if(event.button === 0){
console.log('左键');
}else if(event.button === 1){
console.log('中键');
}else{
console.log('右键');
}
};

onkeydown   键盘按下
onkeyup    键盘抬起
inp.onkeydown = function (event) {//可以通过键盘事件对象的keyCode属性判断具体按下的是哪个按键
if(event.keyCode === 13){//enter
alert(this.value);
}else if(event.keyCode===70&&event.ctrlKey){
prompt('请输入要查找的内容!');
}
};

onfocus    获得焦点
onblur     失去焦点
onchange    表单元素值变化
onsubmit   表单的提交事件,绑定给form标签的

window:
onscroll   滚动事件
onresize   尺寸变化
事件发生时,js会给后面的事件处理函数传递一个事件对象,可以根据事件对象的具体信息去做相应的处理
<div onclick="fn()"></div>
ele.onclick = funciton(){}
ele.onclick = fn;


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值