nextElementSibling
previousElementSibling
parentNode
children
nextElementSibling
previousElementSibling
// 假设有一个HTML结构: // <div id="parent"> // <p>第一个段落</p> // <span id="target">目标元素</span> // <div>第三个div</div> // <!-- 这是一个注释 --> // <a href="#">链接</a> // </div> const targetElement = document.getElementById('target'); // 获取紧邻的下一个兄弟元素 const nextSiblingElement = targetElement.nextElementSibling; console.log(nextSiblingElement); // 输出:<div>第三个div</div> // 获取紧邻的上一个兄弟元素 const previousSiblingElement = targetElement.previousElementSibling; console.log(previousSiblingElement); // 输出:<p>第一个段落</p> // 如果没有下一个/上一个元素,它们会返回 null const firstP = document.querySelector('#parent p'); console.log(firstP.previousElementSibling); // 输出:null
nextSibling
previousSibling
// 基于上面的HTML结构,注意HTML源码中标签之间的换行和空格会生成文本节点 // <p>第一个段落</p> // <span id="target">目标元素</span> <-- 这里有一个换行和空格 // <div>第三个div</div> const targetElement = document.getElementById('target'); // 获取紧邻的下一个兄弟节点(可能是文本节点) const nextSiblingNode = targetElement.nextSibling; console.log(nextSiblingNode); // 可能会输出一个 Text 节点,代表换行或空格 // 获取紧邻的上一个兄弟节点(也可能是文本节点) const previousSiblingNode = targetElement.previousSibling; console.log(previousSiblingNode); // 可能会输出一个 Text 节点
parentNode.children
const targetElement = document.getElementById('target'); const parent = targetElement.parentNode; if (parent) { // parent.children 返回的是一个 HTMLCollection,不是真正的数组, // 所以我通常会把它转换成数组,方便使用数组方法 const allSiblings = Array.from(parent.children).filter(child => child !== targetElement); console.log(allSiblings); // 输出:[<p>第一个段落</p>, <div>第三个div</div>, <a href="#">链接</a>] }
children
parentNode
children
HTMLCollection
children
childNodes
childNodes
HTMLCollection
Array.from()
filter()
function getAllSiblings(element) { if (!element || !element.parentNode) { return []; // 如果元素不存在或没有父节点,就返回空数组 } const parent = element.parentNode; // 使用 Array.from 将 HTMLCollection 转换为数组,方便使用 filter return Array.from(parent.children).filter(child => child !== element); } // 示例用法: const targetElement = document.getElementById('target'); const siblings = getAllSiblings(targetElement); console.log("所有兄弟节点(不含自身):", siblings); // 结果会是:[<p>第一个段落</p>, <div>第三个div</div>, <a href="#">链接</a>]
nextElementSibling
previousElementSibling
nextSibling
#text
nextElementSibling
Node
<div>
<p>
<span>
<!-- 这是一个注释 -->
Element
Node
nextSibling
nextElementSibling
nextSibling
nextSibling
<!-- HTML 结构 --> <div id="box1">Box 1</div> <!-- 这里有一个换行符和几个空格 --> <div id="box2">Box 2</div>
const box1 = document.getElementById('box1'); console.log(box1.nextSibling); // 可能会输出 #text 节点,内容是换行和空格
nextElementSibling
const box1 = document.getElementById('box1'); console.log(box1.nextElementSibling); // 输出:<div id="box2">Box 2</div>
nextElementSibling
previousElementSibling
previousElementSibling
null
nextElementSibling
null
null
const firstElement = document.querySelector('#parent p'); const nextEl = firstElement.nextElementSibling; // 正常返回 <span> const prevEl = firstElement.previousElementSibling; // 返回 null // 错误示范: // console.log(prevEl.textContent); // 报错:Cannot read properties of null (reading 'textContent') // 正确做法: if (prevEl) { console.log(prevEl.textContent); } else { console.log("没有上一个兄弟元素。"); }
if (element)
element?.property
Array.from(parentNode.children).filter(...)
nextSibling
previousSibling
*ElementSibling
nextElementSibling
previousElementSibling
nextSibling
nodeType
*ElementSibling
null
以上就是js怎么获取元素的兄弟节点的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 //m.sbmmt.com/ All Rights Reserved | php.cn | 湘ICP备2023035733号