dom基础学习

DOM:Document Object Model,文档对象模型。

功能:操作HTML元素。

document是页面视口的区域。

节点(Node)

​ nodename nodeValue nodeType
元素节点 标签名 null
文本节点 #text 标签中文本内容
属性节点 属性名 属性值
注释节点 comments 注释内容

注:nodename为大写,localname为小写。

let navEle = getElementsByTagName("nav");	// 通过标签名获取元素
document.getElementsByName("x");	// 通过属性name值来获取元素,注:不止input可以添加name属性
document.getElementsByClassName();	// 通过Class获取元素
document.getElementById();		// id是唯一的
document.querySelector(css表达式);		// 返回第一个满足条件的元素节点
document.querySelectorAll("header>nav"); 	// 返回所有满足条件的元素节点
注:不实时更新数据,即一直保留获取那一刻的节点。后面的操作(增删查改等)对其无效。
Es6新增
ele.parentNode;		// 获取父节点 子节点.parentNode;
faEle.firstChild;	// 获取第一个子节点
faEle.lastChild;	// 获取最后一个子节点
faEle.firstElementChild;	// 获取元素节点第一个节点
faEle.lastElementChild;		// 获取元素节点最后一个节点
faEle.childNodes;	// 获取所有子节点,包含其他节点
faEle.children;		// 获取所有子元素节点
faEle.nextSibling	// 获取下一个兄弟节点
faEle.nextElementSibling	// 获取下一个兄弟元素节点
faEle.previousSibling	// 获取上一个兄弟节点
faEle.previousElementSibling	// 获取上一个兄弟元素节点
节点.innerHTML = str;		// 覆盖,会将标签转化为html代码
节点.innetText = str;		// 覆盖,不会将标签转化为html代码

添加元素节点

步骤:
1.创建新节点
-创建元素节点
-创建文本节点
-把文本节点添加到元素节点中
2.添加节点
-获取被添加的元素A
-把创建的节点,添加给A(即为A的子节点)

document.createElement("标签名");	// 创建元素节点
document.createTextNode("lovo");	// 创建文本节点
父元素节点.appendChild(子节点);	// 添加创建的子节点,如果存在该节点,相当于移动(即剪切)。放在父节点的最后

属性节点

元素节点.getAttribute('属性名');	// 获取属性值	ele.getAttribute('class');
元素节点.属性名;	// 快速获取属性值 ele.className;
注:class是关键字,使用className;name不能用
元素节点.hasAttribute('属性名');	// 	查找属性名,返回boolean;
元素节点.setAttribute('属性名', '属性值'); 	// 添加/修改属性,自定义属性名必须以data-开头。属性值会转字符串
元素节点.属性名 = 属性值;		// 添加/修改属性	注:同上
元素节点.removeAttribute('属性名');	// 删除属性

自定义属性

ele.dataset.index;	// 获取ele元素的自定义属性data-index的属性值

ClassList

ele.classList 	// 获取class的值(0到多个)	ele.classList 类数组
ele.classList.add('类名')		// 添加类名,不会覆盖,有去重功能。
ele.classList.contains('类名')	// 是否包含查找的类名
ele.classList.toggle('类名')	// 有类名则删除false,反之则增加true,返回boolean
ele.classList.remove('类名');	// 删除类名

注释节点

document.createComment('我是一个注释');	// 创建注释节点

插入节点

步骤:
获取元素节点
1.父元素节点
2.插入节点
3.插入到哪个元素之前

父元素节点.insertBefore(A, B);
注:A是插入节点,B是插入到哪个节点之前。即A插入到B之前。
如果A标签是存在的标签,则从原来的位置移动到B之前。

替换节点

步骤:
获取元素节点
1.父元素节点
2.替换节点
3.替换那个节点(被替换的节点)

父元素节点.replaceChild(A, B);
注:A是替换节点,B是被替换节点。如果A存在,替换B后会消失。

删除节点

节点名.remove();
如果删除的是父节点,会把自己和后代节点一同删除

克隆节点

标识符 = 节点名称.cloneNode(boolean); 	// 返回一个克隆节点
// 深克隆:参数为true,表示会吧子节点和后代节点一同克隆
// 浅克隆:参数为false,只克隆当前节点,不包含其子节点和后代节点

节点样式

ele.style.css属性 = 赋值
ele.style.css属性;	// 只能获取行内样式,可读可改。

添加css样式

window.getComputedStyle(元素节点, null).css属性;	// 获取元素属性值 不.css属性获取的是元素节点对象
window.getComputedStyle(元素节点, ':before或:after').css属性;	// 获取元素节点伪元素的属性值
注:获取的是最终样式,只读。

事件

事件的三要素:
事件源:绑定事件的节点
事件处理函数:事件触发时,调用的函数
事件类型:触发类型

// DOM2 时间监听器
时间源.addEventListener(1,2,3);1:事件类型 不加on
参2:事件处理函数
参3:事件流(boolean,默认为false)
事件流
true捕获型,从外往里触发事件
false冒泡型,从里往外触发事件
注:HTML结构
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值