下面的递归函数在所有带有标签名称的 HTML 元素上运行,从 body 元素开始,一直到叶子。对于每个元素,代码获取背景颜色和以像素为单位的元素区域(如果存在):
function findAllElements(element){
if(element.tagName){
// getting the element background color and puts it in var "BGcolor"
// getting the element area and puts it in var "AREA"
// console.log both BGcolor and AREA with element.nodeName
var children =element.childNodes;
for (var i= 0;i<children.length;i++){
findAllElements(children[i]);
}
}
// do something
}
问题:
我需要为每个元素计算相对面积。例如,如果我在 DIV 中有 DIV,则内部 DIV 将是他的正确区域,而外部 div 将是他的区域减去内部 div 区域:
在上图中,输出应为:内部 DIV 区域为100px,外部 DIV 为 400-100 = 300px。
这也可以在其他元素中找到(例如:P 标签内的 STRONG 标签、DIV 内的 TABLE 等。)
我需要什么:我需要在这个特定的递归函数中添加一些代码行,这将为我提供如上所示的相对区域。一种解决方案可以是对所有子区域求和并从父节点减少它的变体。
我没有成功添加一些有用的东西...... :(
重要笔记:
1)我正在运行大量不同的元素,所以这应该适用于所有类型,而不仅仅是这个 DIV 的例子
2)我不是在寻找如何获取颜色或如何计算面积的定义,我已经有了它,为了简化问题我没有提到它。我正在寻找的是在哪里以及如何添加这个子区域
非常感谢