获取元素的祖先元素

从文档根节点到给定元素返回所有祖先元素。

  • 使用 Node.parentNodewhile 循环来向上遍历元素的祖先树。
  • 使用 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]