获取元素的祖先元素
从文档根节点到给定元素返回所有祖先元素。
- 使用
Node.parentNode
和while
循环来向上遍历元素的祖先树。 - 使用
Array.prototype.unshift()
将每个新的祖先元素添加到数组的开头。
const getAncestors = el => {
let ancestors = [];
while (el) {
ancestors.unshift(el);
el = el.parentNode;
}
return ancestors;
};
getAncestors(document.querySelector('nav'));
// [document, html, body, header, nav]