1

下面的递归函数在所有带有标签名称的 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)我不是在寻找如何获取颜色或如何计算面积的定义,我已经有了它,为了简化问题我没有提到它。我正在寻找的是在哪里以及如何添加这个子区域

非常感谢

4

0 回答 0