Finds the anchor node closest to the given node
, if any.
- Use a
for
loop andNode.parentNode
to traverse the node tree upwards from the givennode
. - Use
Node.nodeName
andString.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