Day14_DOM课堂笔记

这篇笔记详细介绍了DOM(文档对象模型)的操作,包括元素属性、样式、文本内容的读写,以及节点的创建、添加、删除、替换和克隆。此外,还涉及到了HTMLDOM中的表单和表格元素操作,以及document对象的各种方法。最后,文章讲解了事件监听的三种方式,并提到了跨浏览器的事件处理兼容性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Day14 DOM 笔记

1 回顾 元素操作

1. 元素的属性操作
   1.1 读写内置属性
   1.2 读写自定义属性
   1.3 读写data-形式的自定义属性

2. 元素的样式操作
   2.1 读写元素的行内样式
       元素.style.属性名
   2.2 读取计算样式
   	   getComputedStyle(元素).属性名
   2.3 元素类名操作 className
   2.4 元素类名操作 classList
   	   元素.classList.add()
   	   元素.classList.remove()
   	   元素.classList.toggle()
   	   元素.classList.length

3. 读写元素中的文本内容
   元素.innerHTML;
   元素.outerHTML;
   元素.innerText;
   元素.textContent;

4. 读取元素的尺寸
   元素.offsetWidth、元素.offsetHeight
   元素.clientWidth、元素.clientHeight
   元素.scrollWidth、元素.scrollHeight
   元素.getBoundingClientRect().width
   							  .height
	
5. 读取元素的位置
   元素.offsetLeft、元素.offsetTop
   元素.clientLeft、元素.clientTop
   元素.getBoundingClientRect().left
							  .top
							  .x
							  .y
							  .right
							  .bottom

6. 读写元素中内容的位置(内容滚动的距离)
   元素.scrollLeft、元素.scrollTop

2 节点(元素)的创建添加删除替换克隆

2.1 创建元素节点

// 方法返回新创建的元素
document.createElement('标签名');  

2.2 添加子节点

① 在最后面添加子节点
父元素对象.appendChild(新节点);
② 指定位置添加子节点
父元素对象.insertBefore(新节点, 旧节点);

2.3 删除子节点

父元素对象.removeChild(要被删除的节点);

2.4 替换子节点

父元素对象.replaceChild(新节点, 旧节点);

2.5 节点克隆

// 方法返回克隆出来的元素
元素.cloneNode(true);
参数含义:
true: 表示深度克隆,元素以及后代元素都克隆。
false: 表示浅克隆,只克隆元素本身,不克隆后代元素,默认值。

3 HTML DOM

3.1 表单相关元素

① form 元素
submit()		提交表单
reset()			重置表单
② 文本输入框和文本域(input 和 textarea)

主要包括 type 值是 text、password、email、url、number、tel、search 的input 标签 和 textarea 标签。

blur()			失去焦点
focus()			获取焦点
select()		选中输入框中文字
③ select 元素
value			获取被选中的下拉选项的value
length			获取下拉选项的个数,该属性可读可写
selectedIndex	获取被选中的下拉选项的索引

add()			追加一个下拉选项,参数是个option元素
remove()		删除一个下拉选项,参数是索引
// 创建 option 元素,快捷方式
new Option('选项中的文字', 'value值');

3.2 表格相关元素

① table 元素
rows			获取表格中所有的行元素的集合
insertRow()		插入一个新行,可以指定插入位置,方法返回新的tr元素
deleteRow()		删除一行,指定索引
② tableRow 元素(tr 元素)
cells			获取该行内所有单元格元素的集合
rowIndex		获取改行的索引
insertCell()	插入新的单元格,可以指定索引,方法返回新的td元素对象
deleteCell()	删除一个单元格,指定索引
③ tableCell 元素 (td 或 th)
cellIndex		获取该单元格在行中的索引

3.3 快速创建 img 元素

// 创建 img 元素
new Image();

// 创建 img 元素并设置宽高属性
new Image(500, 400);

4 document 对象

document.documentElement			获取html元素
document.body						获取body元素
document.head						获取head元素
document.all						获取文档中所有的元素组成的集合
document.URL						获取当前页面的URL地址
document.domain						获取页面URL中的主机名
document.referrer					获取上一个历史记录的地址
document.lastModified				获取文档最后一次修改时间
document.title						读写页面标题内容


document.write()					将内容输出到文档
document.getElementById()			获取元素
document.getElementsByTagName()		获取元素
document.getElementsByClassName()	获取元素
document.getElementsByName()		获取元素
document.querySelector()			获取元素
document.querySelectorAll()			获取元素
document.createElement()			创建一个元素

5 事件

5.1 事件监听

① 给元素监听事件的三种方式

第一种方式: 事件作为HTML标签的属性:

<button onclick="js代码..."></button>

第二种方式: 事件作为元素对象的方法:

元素对象.onclick = function() {
  	代码...;  
};

元素对象.onclick = 函数名;
同一个元素添加多个相同的事件,后面的覆盖前面!

第三种方式:使用 addEventListenrer 方法:

元素对象.addEventListener('click', function() {
   代码...; 
});

元素对象.addEventListener('click', 函数名);
同一个元素可以监听多次相同的事件!

了解:

IE 8 以及以下浏览器,不支持 addEventListener()、removeEventListener() ,可以使用 attachEvent()、detachEvent()。

② 解除事件的监听

第一种和第二种方式监听的事件:

元素对象.on事件名 = null;

第三种方式监听的事件:

元素对象.addEventListener('事件名', 回调函数名);
使用 addEventListener 方式监听事件,如果将来需要解除监听,回调函数必须是有名字的函数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人生本该如此

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值