树行者
通常我只会在开发人员控制台中突出显示 DOM 树中的节点,但是我偶尔会遇到一些奇怪的height
事情,所以从现在开始,这将是一个很好的工具供我使用。有一些技术细节需要考虑这是如何工作的:
- 您必须使用 TreeWalker,例如
childNodes
仅适用于第一代后代,但不适用于他们的子节点。
- 您需要使用
scrollHeight
. 诸如此类的东西getComputedStyle
将返回视觉呈现的高度,但不是完全呈现的高度。
return false
如果没有后代元素,我会写这个。
- 虽然没有内置到我所知道的任何浏览器控制台中(但),但这至少不依赖于任何框架或库。
要使用只需调用诸如element_find_descendant_tallest(document.getElementById('test1'));
.
function element_find_tallest_descendant(e)
{
var walker = document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,null,false),
height_current = 0;
tallest = false;
while (walker.nextNode())
{
var n = parseInt(walker.currentNode.scrollHeight);
if (n != 'NaN' && n > height_current)
{
height_current = n;
tallest = walker.currentNode;
//Update console every time new tallest descendant found:
console.log(walker.currentNode);
console.log(n);
console.log('---');
}
}
return tallest;
}