1.获取option节点
|
知识点 |
核心内容 |
重点 |
|
DOM节点常用方法 |
getElementsByTagName、appendChild等方法的使用 |
方法调用方式(通过具体元素调用) |
|
DOM节点常用属性 |
childNodes、firstChild、lastChild、parentNode、nextSibling、previousSibling、className、innerHTML、innerText |
属性区别(innerHTML获取HTML内容 vs innerText获取文本内容) |
|
元素查找方法 |
getElementById、getElementsByName、getElementsByTagName三种主要方法 |
方法适用场景区分(ID/name/tagName查找) |
|
动态事件绑定 |
window.onload和onclick事件绑定实现 |
执行时机(页面加载完成后绑定) |
|
集合对象操作 |
HTMLCollection对象的遍历和属性访问 |
集合访问方式(下标访问和length属性) |
|
开发工具技巧 |
Ctrl+Home/End快速导航、代码结构保持一致性 |
快捷键使用场景(长文件快速定位) |
2.按照name获取节点
|
知识点 |
核心内容 |
重点 |
|
DOM元素获取方法 |
使用getElementsByName()获取同名节点集合 |
返回值是NodeList而非单个元素 |
|
表单元素取值 |
通过.value属性获取input元素的值 |
与innerText的区别(value获取表单值) |
|
复选框处理 |
遍历NodeList并检查checked属性 |
只显示被选中项的逻辑实现 |
|
事件绑定 |
onclick事件处理函数的基本写法 |
匿名函数与回调函数的应用场景 |
|
循环遍历 |
使用for循环处理NodeList集合 |
集合下标访问方式(类数组操作) |
3.获取指定dom对象下的子节点(1)
|
知识点 |
核心内容 |
重点 |
|
DOM元素范围限定查询 |
通过getElementById先获取父元素,再用getElementsByTagName获取子元素集合 |
范围限定与全局查询的区别 |
|
节点内容获取方式 |
根据标签类型选择value或innerText属性(input用value,li用innerText) |
属性选择逻辑 |
|
集合对象遍历 |
使用length属性和下标访问集合元素 |
集合与数组操作差异 |
|
事件绑定机制 |
onclick事件处理函数中执行DOM操作 |
事件触发时序控制 |
|
多层DOM操作 |
通过链式调用实现层级访问(如document.getElementById().getElementsByTagName()) |
作用域链理解 |
4.获取指定dom对象下的子节点(2)
|
知识点 |
核心内容 |
重点 |
|
DOM节点获取方法 |
三种获取子节点的方法: 1) getElementsByTagName 2) childNodes属性 3) 直接遍历select元素 |
childNodes会包含文本节点 vs getElementsByTagName仅获取元素节点 |
|
文本节点处理 |
换行符会被识别为文本节点,导致childNodes返回数量异常 |
实际子节点数量(11个) vs 视觉元素数量(5个) |
|
集合类型差异 |
HTMLCollection与NodeList的特性对比 |
动态集合特性 vs 静态集合特性 |
|
元素过滤技巧 |
使用selected属性筛选已选中的option元素 |
undefined判断 vs 属性存在性验证 |
|
历史编程实践 |
早期DOM编程需手动处理空白文本节点 |
现代框架自动处理 vs 原生DOM需显式过滤 |
|
特殊集合访问 |
SelectElement直接支持options集合索引访问 |
隐式集合特性 vs 显式查询 |
5.获取第一个节点
|
知识点 |
核心内容 |
重点 |
|
获取DOM子节点方法 |
使用firstChild属性获取第一个子节点 |
firstChild与childNodes[0]的区别:前者可能返回文本节点,后者直接返回元素节点 |
|
DOM节点类型识别 |
通过nodeType区分文本节点(3)和元素节点(1) |
空文本节点在childNodes中的存在容易被忽略 |
|
方法链式调用 |
firstChild和lastChild可连续调用获取嵌套节点 |
需注意中间节点是否为元素节点 |
|
事件绑定验证 |
通过onclick事件测试节点获取结果 |
函数体位置错误会导致事件失效 |
|
节点过滤特性 |
children集合自动过滤非元素节点 |
与childNodes包含所有节点的差异 |
6.获取父节点
|
知识点 |
核心内容 |
重点 |
|
DOM树结构 |
通过a→b/c→d/e的层级示例讲解DOM树形结构 |
父节点与子节点的双向获取逻辑 |
|
获取父节点方法 |
使用parentNode属性获取指定元素的父节点 |
parentNode与parentElement的区别 |
|
节点遍历技术 |
通过父节点反向遍历所有子节点(含文本节点) |
childNodes包含文本节点导致长度计算差异 |
|
元素集合特性 |
ul元素默认包含li集合(类比select-option结构) |
集合类元素的通用操作方法 |
|
动态调试技巧 |
通过innerHTML验证节点获取准确性 |
格式化代码对文本节点数量的影响 |
|
节点操作实战 |
使用for循环遍历父节点下的所有语言项 |
处理undefined值的边界情况 |
7.获取兄弟节点
|
知识点 |
核心内容 |
重点 |
|
DOM节点操作 |
讲解如何通过JavaScript获取DOM节点的前后兄弟节点 |
文本节点与元素节点的区别(换行符也会生成文本节点) |
|
previousSibling属性 |
获取当前节点的前一个兄弟节点(可能是文本节点) |
需要连续调用两次才能获取真正的元素节点 |
|
nextSibling属性 |
获取当前节点的后一个兄弟节点(可能是文本节点) |
需要连续调用两次才能获取真正的元素节点 |
|
DOM与MVVM关系 |
解释Vue等框架底层仍依赖DOM操作 |
数据驱动视图的实现原理 |
|
节点关系类型 |
完整节点操作体系:子节点、父节点、兄弟节点 |
上下左右全方向节点获取方法 |
8.设置文本域内容
|
知识点 |
核心内容 |
关键细节 |
|
读取CT的values属性 |
使用getElementById获取元素后通过.value属性读取 |
与innerText属性的区别 |
|
修改DOM元素内容 |
通过innerText属性修改标签间文本内容 |
文本域与普通元素的处理差异 |
|
DOM编程核心模式 |
1. 获取DOM对象; 2. 操作属性/方法 |
操作前必须确保成功获取对象 |
|
文本域内容设置 |
对textarea元素使用innerText修改内容 |
注意与value属性的适用场景区别 |
|
事件绑定基础 |
element.onclick绑定点击事件 |
现代更推荐addEventListener方式 |
|
DOM操作应用场景 |
• 元素查找; • 内容修改; • 样式调整 |
需理解DOM树结构 |
9.乌龟吃鸡游戏
- 通过方向键控制乌龟图片上下左右移动
- 当乌龟与静止的公鸡图片重合时触发碰撞事件
- 碰撞后弹出"乌龟好厉害呀"对话框并重置乌龟位置
|
知识点 |
核心内容 |
重点 |
|
网页坐标体系 |
绝对定位(position: absolute)的参照点为窗口原点(左上角),通过left(横坐标)和top(纵坐标)控制元素位置 |
坐标参考点(窗口原点 vs. 图片左上角) |
|
功能拆解 |
第一步:完成乌龟与公鸡的网页基础展示(提供素材文件) |
动态效果需后续补充核心代码 |
|
绝对定位实践 |
修改left和top值可移动元素(示例:归零后元素贴附窗口左上角) |
数值增减与方向关系(右/下为正) |
|
代码复用逻辑 |
坐标体系与JAVA坦克大战项目一致,强调基础知识的迁移性 |
跨语言坐标规则通用性 |
10.乌龟吃鸡游戏(2)-动起来思路
|
知识点 |
核心内容 |
重点 |
|
DOM操作基础 |
通过修改DOM元素的style.left和style.top属性实现元素移动 |
动态绑定 vs 静态绑定事件 |
|
乌龟移动逻辑 |
修改top值减小(上移)、增加(下移);修改left值增加(右移)、减小(左移) |
坐标增减方向与移动方向的对应关系 |
|
事件绑定策略 |
为方向按钮绑定onclick事件(示例采用静态绑定) |
动态绑定的适用场景与实现方式 |
|
编程思维训练 |
“先分析再实现”的流程:获取DOM对象→修改属性→绑定事件 |
分析阶段与代码实现的衔接 |
11.乌龟吃鸡游戏(3)-绑定move
|
知识点 |
核心内容 |
重点 |
|
事件绑定传参技巧 |
通过onclick事件传递value或this区分按钮操作(如up/left/right/down) |
this指向被点击的DOM对象(HTMLInputElement),可通过.value获取按钮标识 |
|
DOM属性动态修改 |
获取乌龟DOM的style.left/top(带px的字符串),需转换为Number后再计算 |
直接操作字符串会导致计算错误(如"100px" + 10) |
|
调试技巧 |
不确定时输出日志(console.log或alert)验证数据,避免后续代码因前置错误失效 |
调试成本控制:分段验证而非写完所有代码再测试 |
|
代码优化思路 |
用单一函数+参数区分方向(替代四个独立函数),通过obj.value判断操作类型 |
逻辑集中处理 vs 分散重复代码 |
|
编程思维训练 |
“感情的自然流露”:通过DOM对象属性联想其可操作方法(如.style修改样式) |
对象思维:从DOM到属性再到行为的链式推导 |
12.乌龟吃鸡游戏(4)-乌龟动起来
|
知识点 |
核心内容 |
易混淆点 |
|
字符串转数字处理 |
使用substring和indexOf提取数值部分,再用parseInt转换类型 |
字符串拼接与数值相加的区别("100"+20="10020") |
|
DOM元素坐标操作 |
通过style.left/style.top获取带单位(px)的字符串值 |
带单位字符串必须去除"px"才能数学运算 |
|
坐标体系移动逻辑 |
向上/下移动修改top值(减/加),向左/右移动修改left值(加/减) |
CSS坐标系与数学坐标系方向差异(Y轴向下增大) |
|
类型转换原理 |
必须通过API完成字符串到数字的转换(如parseInt) |
直接强制转换与解析转换的区别 |
|
碰撞检测基础 |
矩形碰撞判断比坦克大战简单(固定朝向) |
多物体碰撞检测复杂度差异 |
13.乌龟吃鸡游戏(5)-碰撞思路
|
知识点 |
核心内容 |
重点 |
|
碰撞检测逻辑 |
通过计算乌龟和公鸡的纵向距离(y)和横向距离(x),结合图片高度/宽度判断是否重叠 |
纵向距离需对比乌龟高度或公鸡高度,横向距离需对比乌龟宽度或公鸡宽度 |
|
四种碰撞情况 |
1. 乌龟从上方碰撞公鸡(y < 乌龟高度); 2. 乌龟从下方碰撞公鸡(y < 公鸡高度); 3. 乌龟从左侧碰撞公鸡(x < 乌龟宽度); 4. 乌龟从右侧碰撞公鸡(x < 公鸡宽度) |
需区分距离对比对象(乌龟/公鸡的尺寸) |
|
最终碰撞判定 |
当纵向(y)和横向(x)距离同时满足条件时,判定为碰撞 |
需理解“可能重叠”与“实际碰撞”的区别 |
14.乌龟吃鸡游戏(6)-实现碰撞
|
知识点 |
核心内容 |
重点 |
|
碰撞检测算法实现 |
通过计算乌龟和公鸡图片的绝对距离判断碰撞条件,使用Math.abs()方法获取纵向(y)和横向(x)距离 |
绝对值计算逻辑(需注意正负值处理) 坐标系统理解(top/left定位原理) |
|
DOM元素动态定位 |
定义乌龟(cock)和公鸡(turtle)的初始坐标及图片尺寸参数 |
变量定义时机(需在碰撞判断前初始化) 像素值准确性(图片实际尺寸必须精确匹配) |
|
条件分支逻辑构建 |
嵌套if-else结构处理四种碰撞方向(上/下/左/右) |
方向判断条件(top/left值大小比较逻辑) 状态变量联动(x/yy同时为1时触发碰撞) |
|
碰撞后重置机制 |
触发碰撞后将乌龟重置到初始位置(100px,120px) |
style属性动态修改(需同时操作left/top属性) 默认值设定规范(x/yy初始化为0) |
|
调试技巧 |
通过控制台验证坐标计算和碰撞触发条件 |
边界值测试(精确到1px的碰撞检测) 斜向移动验证(需同时修改x/y坐标) |

被折叠的 条评论
为什么被折叠?



