JavaScript previousElementSibling
最后修改于 2025 年 4 月 2 日
在本文中,我们将探讨 JavaScript 中的 previousElementSibling
属性。此属性对于 DOM 遍历至关重要,它允许开发人员访问 DOM 树中的上一个同级元素。
基本定义
previousElementSibling
属性返回同一树级别上的上一个元素节点。它仅返回元素节点,忽略文本节点和注释。
此属性是只读的,属于 Element 接口。如果没有上一个元素同级节点,则返回 null。它可用于在不使用复杂选择器的情况下导航同级元素。
基础 previousElementSibling
此示例演示了如何访问元素的上一个同级节点。
<!DOCTYPE html> <html> <head> <title>Basic previousElementSibling</title> </head> <body> <div id="first">First div</div> <div id="second">Second div</div> <script> const secondDiv = document.getElementById('second'); const previousDiv = secondDiv.previousElementSibling; console.log(previousDiv.textContent); // Outputs: First div </script> </body> </html>
在此基本示例中,我们有两个 div 元素。我们选择第二个 div 并使用 previousElementSibling
访问其上一个同级节点。
该属性返回第一个 div 元素,我们记录其文本内容。这显示了 previousElementSibling
在 DOM 导航同级元素中的基本用法。
更改上一个同级元素的样式
此示例显示了如何修改上一个同级元素的样式。
<!DOCTYPE html> <html> <head> <title>Changing Previous Sibling Style</title> </head> <body> <p>First paragraph</p> <p id="target">Second paragraph</p> <button onclick="highlightPrevious()">Highlight Previous</button> <script> function highlightPrevious() { const target = document.getElementById('target'); const previous = target.previousElementSibling; previous.style.backgroundColor = 'yellow'; previous.style.padding = '10px'; } </script> </body> </html>
这里我们有两个段落和一个按钮。单击按钮时,按钮会找到目标段落的上一个同级节点并更改其样式。
这表明 previousElementSibling
可用于响应用户操作动态修改相邻元素的外观。
列表项中的导航
此示例演示了在无序列表中使用 previousElementSibling。
<!DOCTYPE html> <html> <head> <title>List Navigation</title> </head> <body> <ul> <li>Item 1</li> <li id="second">Item 2</li> <li>Item 3</li> </ul> <button onclick="showPrevious()">Show Previous Item</button> <script> function showPrevious() { const current = document.getElementById('second'); const previous = current.previousElementSibling; alert('Previous item: ' + previous.textContent); } </script> </body> </html>
在此示例中,我们有一个包含三个项目的列表。按钮触发一个函数,该函数查找中间列表项的上一个同级节点。
这表明 previousElementSibling
在遍历列表结构和访问 DOM 中的相邻项方面非常有用。
表单字段导航
此示例显示了如何使用 previousElementSibling 在表单字段之间导航。
<!DOCTYPE html> <html> <head> <title>Form Field Navigation</title> </head> <body> <input type="text" placeholder="First name"> <input type="text" id="lastName" placeholder="Last name"> <button onclick="focusPrevious()">Focus Previous Field</button> <script> function focusPrevious() { const lastNameField = document.getElementById('lastName'); const previousField = lastNameField.previousElementSibling; previousField.focus(); } </script> </body> </html>
这里我们有两个输入字段和一个按钮。单击按钮时,按钮会将焦点移动到相对于姓名字段的上一个输入字段。
这演示了 previousElementSibling
在表单导航中的实际用例,可以实现直观的字段到字段移动。
检查上一个同级节点
此示例显示了如何检查一个元素是否有上一个同级节点。
<!DOCTYPE html> <html> <head> <title>Checking for Previous Sibling</title> </head> <body> <div id="first">First element</div> <div id="second">Second element</div> <button onclick="checkSiblings()">Check Siblings</button> <p id="result"></p> <script> function checkSiblings() { const first = document.getElementById('first'); const result = document.getElementById('result'); if (first.previousElementSibling) { result.textContent = 'Has previous sibling'; } else { result.textContent = 'No previous sibling'; } } </script> </body> </html>
在此示例中,我们检查第一个 div 元素是否有上一个同级节点。结果显示在一个段落元素中。
这表明如何安全地使用 previousElementSibling
,即在尝试访问其属性或方法之前先检查它是否存在。
来源
在本文中,我们展示了如何在 JavaScript 中使用 previousElementSibling
属性。此属性对于 Web 开发中的 DOM 遍历和元素导航至关重要。
作者
列出 所有 JS DOM 教程。