给定一个 DOM 元素。
我怎样才能制作一个BFS,以便对于它的所有孩子(以及孩子的孩子等等......)我可以找到在哪个级别找到<a>
满足href属性的元素等于 X。作为 X 一个数组的可能值。
这是我到目前为止所拥有的,但我看不到如何/何时增加深度变量:
function findAnchorBFS(element) {
if (element.nodeName == 'A' && isHrefHost(element.href)) {
return 0; // this is the main level
}
var elements = [element];
var level = 0;
while (elements.length) {
var newElements = [];
for (var i=0; i < elements.length; i++) {
var children = elements[i].children;
for (var j=0; j < children.length; j++) {
var child = children[j];
if (child.nodeName == 'A' && isHrefHost(child.href)) {
return true;
}
newElements.push(child);
}
}
elements = newElements;
}
}