Here is your code modified to record depth:
function findAnchorBFS(element) {
if (element.nodeName == 'A' && isHrefHost(element.href)) {
return 0; // this is the main level
}
var elements = [{ el: element, depth: 0 }];
while (elements.length) {
var newElements = [];
for (var i=0; i < elements.length; i++) {
var newDepth = elements[i].depth + 1;
var children = elements[i].el.children;
for (var j=0; j < children.length; j++) {
var child = children[j];
if (child.nodeName == 'A' && isHrefHost(child.href)) {
return newDepth;
}
newElements.push({ el: child, depth: newDepth });
}
}
elements = newElements;
}
}