以下是一份 DOM 事件 & HTML 标签属性速查手册,涵盖常用场景和示例,助你快速查阅和使用:
 
一、DOM 事件速查表
 
1. 鼠标事件
 
| 事件名 | 触发时机 | 适用元素 | 示例代码 | 
|---|
click | 元素被点击 | 任意可见元素 | button.addEventListener('click', () => { ... }) | 
dblclick | 元素被双击 | 任意可见元素 | div.addEventListener('dblclick', handleDoubleClick) | 
mouseover | 鼠标移入元素 | 任意可见元素 | img.onmouseover = () => { ... } | 
mouseout | 鼠标移出元素 | 任意可见元素 | div.addEventListener('mouseout', logExit) | 
mousemove | 鼠标在元素内移动 | 任意可见元素 | canvas.onmousemove = trackPosition | 
contextmenu | 右键点击元素(弹出菜单前) | 任意元素 | document.oncontextmenu = blockDefaultMenu | 
 
2. 键盘事件
 
| 事件名 | 触发时机 | 适用元素 | 示例代码 | 
|---|
keydown | 键盘按键按下时 | 可聚焦元素(如 input) | input.addEventListener('keydown', (e) => { if (e.key === 'Enter') submit() }) | 
keyup | 键盘按键释放时 | 可聚焦元素 | input.onkeyup = validateInput | 
keypress | 按键按下并产生字符时(已弃用,建议用 keydown) | 可聚焦元素 | - | 
 
3. 表单事件
 
| 事件名 | 触发时机 | 适用元素 | 示例代码 | 
|---|
submit | 表单提交时 | <form> | form.onsubmit = (e) => { e.preventDefault(); ... } | 
change | 表单元素值改变并失焦后 | input, select, textarea | select.addEventListener('change', updateOptions) | 
input | 表单元素值实时改变时 | input, textarea | input.oninput = debounce(search, 300) | 
focus | 元素获得焦点时 | 可聚焦元素 | input.onfocus = showTooltip | 
blur | 元素失去焦点时 | 可聚焦元素 | input.onblur = validateField | 
 
4. 窗口/文档事件
 
| 事件名 | 触发时机 | 适用元素 | 示例代码 | 
|---|
load | 资源(如图片、页面)加载完成 | window, img, iframe | window.onload = initApp; | 
resize | 窗口大小改变时 | window | window.addEventListener('resize', handleResize) | 
scroll | 元素滚动时 | 可滚动元素 | div.onscroll = throttle(checkPosition, 100) | 
 
5. 其他事件
 
| 事件名 | 触发时机 | 适用元素 | 示例代码 | 
|---|
DOMContentLoaded | HTML 解析完成(DOM 树就绪,无需等待资源) | document | document.addEventListener('DOMContentLoaded', init) | 
transitionend | CSS 过渡动画完成 | 任意元素 | div.ontransitionend = removeElement | 
animationend | CSS 动画完成 | 任意元素 | box.onanimationend = () => { ... } | 
 
二、HTML 标签属性速查表
 
1. 全局属性(所有标签可用)
 
| 属性名 | 说明 | 示例 | 
|---|
id | 唯一标识元素 | <div id="header"></div> | 
class | 为元素指定 CSS 类名 | <p class="text-red"></p> | 
style | 行内 CSS 样式 | <div style="color: red;"></div> | 
title | 悬停提示文本 | <a href="#" title="返回顶部">↑</a> | 
data-* | 存储自定义数据 | <div data-user-id="123"></div> | 
contenteditable | 允许元素内容可编辑 | <div contenteditable="true"></div> | 
 
2. 表单相关属性
 
| 属性名 | 说明 | 适用标签 | 示例 | 
|---|
type | 输入类型(text, email, password 等) | <input> | <input type="email"> | 
required | 表单提交前必须填写 | input, select, textarea | <input required> | 
disabled | 禁用表单元素 | input, button | <button disabled>提交</button> | 
placeholder | 输入框提示文本 | input, textarea | <input placeholder="请输入姓名"> | 
min/max | 数值/时间输入的最小/最大值 | input[type=number, date] | <input type="number" min="1" max="10"> | 
pattern | 输入内容的正则表达式验证 | input[type=text] | <input pattern="\d{3}-\d{4}"> | 
 
3. 链接与媒体属性
 
| 属性名 | 说明 | 适用标签 | 示例 | 
|---|
href | 链接目标 URL | <a>, <link> | <a href="https://example.com">链接</a> | 
target | 打开链接的方式(如 _blank 新窗口) | <a> | <a target="_blank">新窗口打开</a> | 
src | 资源路径(图片、脚本、视频) | img, script, video | <img src="logo.png"> | 
alt | 图片无法显示时的替代文本 | <img> | <img src="cat.jpg" alt="猫咪图片"> | 
controls | 显示媒体控件(播放/暂停等) | video, audio | <video controls></video> | 
autoplay | 媒体加载后自动播放 | video, audio | <audio autoplay></audio> | 
 
4. 元信息与 SEO 属性
 
| 属性名 | 说明 | 适用标签 | 示例 | 
|---|
charset | 文档字符编码 | <meta> | <meta charset="UTF-8"> | 
name | 定义元数据名称(如关键词、描述) | <meta> | <meta name="description" content="页面描述"> | 
property | Open Graph 协议(社交媒体优化) | <meta> | <meta property="og:title" content="标题"> | 
rel | 定义链接与文档的关系 | <link>, <a> | <link rel="stylesheet" href="style.css"> | 
 
三、事件处理技巧
 
1. 阻止默认行为
 
element.addEventListener('click', (e) => {e.preventDefault(); 
});
 
2. 阻止事件冒泡
 
button.onclick = (e) => {e.stopPropagation(); 
};
 
3. 事件委托
 
document.getElementById('list').addEventListener('click', (e) => {if (e.target.tagName === 'LI') { console.log('点击了列表项:', e.target.textContent);}
});
 
四、兼容性与最佳实践
 
- 优先使用 
addEventListener:避免 onclick 等行内事件属性的覆盖问题。 - 移动端适配:使用 
touchstart、touchend 替代部分鼠标事件。 - 语义化标签:优先使用 
<button> 而非 <div> 模拟按钮,提升可访问性。 - 属性验证:对用户输入使用 
required 和 pattern 进行前端验证。 
 
资源推荐:
 
- MDN Web 文档 - HTML 属性
 - JavaScript 事件参考
 
 
掌握这些事件和属性,你将能更高效地开发交互丰富的 Web 应用! 🚀
 
📚 推荐阅读
 
- 无限畅用Cursor 编辑器,四步轻松搞定!
 - 历时两周半开发的一款加载live2模型的浏览器插件
 - github优秀开源作品集