element.previousElementSibling用于获取紧邻的前一个兄弟元素节点,只返回元素节点,忽略文本、注释等;若无则返回null,且不跨层级、不向前搜多个。

element.previousElementSibling 用于获取当前元素在 DOM 树中**紧邻的前一个兄弟元素节点**(只返回元素节点,忽略文本、注释等非元素节点)。
基本用法和注意事项
它是一个只读属性,返回的是上一个元素节点,不是所有节点。如果上一个兄弟是文本、空格或注释,会被跳过。
- 如果当前元素是父元素的第一个子元素,或前面没有元素节点,则返回 null
- 它不包含文本节点(比如换行、空格)、注释节点等,这点和
previousSibling不同 - 只查找同级、紧邻、在它前面的元素,不跨层级,也不往前搜多个
简单示例
HTML 结构:
第一段
中间内容
标题
JS 获取 #target 的上一个兄弟元素:
const prev = target.previousElementSibling; // 中间内容
console.log(prev.tagName); // "SPAN"
常见误用与排查建议
如果拿到的是 null,先检查以下几点:
- 目标元素是否确实是第一个子元素(前面没别的元素)
- DOM 是否已加载完成(避免脚本执行太早,元素还没解析)
- 确认 HTML 中两个元素之间没有意外的元素(比如动态插入的、或模板引擎生成的)
- 想获取所有前面的兄弟元素?需要自己循环遍历
previousElementSibling,它本身不支持“找第 N 个”
对比 previousSibling
previousSibling 返回上一个任意类型节点(可能是文本节点),而 previousElementSibling 更干净直接。例如:
A
B
对 来说:
– previousElementSibling →
– previousSibling → 可能是注释节点(或换行产生的文本节点)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











