Finds the anchor node closest to the given node, if any.
- Use a
forloop andNode.parentNodeto traverse the node tree upwards from the givennode. - Use
Node.nodeNameandString.prototype.toLowerCase()to check if any given node is an anchor ('a'). - If no matching node is found, return
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
翻译自:https://www.30secondsofcode.org/js/s/find-closest-anchor