查找最近的锚点

如果有的话,查找最接近给定 node 的锚点节点。

  • 使用 for 循环和 Node.parentNode 从给定的 node 向上遍历节点树。
  • 使用 Node.nodeNameString.prototype.toLowerCase() 来检查任何给定的节点是否是锚点 ('a')。
  • 如果找不到匹配的节点,则返回 null
const findClosestAnchor = node => {
  for (let n = node; n.parentNode; n = n.parentNode)
    if (n.nodeName.toLowerCase() === 'a') return n;
  return null;
};

findClosestAnchor(document.querySelector('a > span')); // a