如果你绝对必须这样做,递归地遍历树会更有效,因为一旦你遇到一个小于你需要的元素,你就知道它里面的任何东西都不是所需的大小。在大多数情况下似乎仍然会有更好的解决方案,但我不知道您的具体问题。
编辑:
这行得通。
function findElements( width, height, element ){
var results = Array();
for( var i=0; i<element.childNodes.length; i+=1 ){
var childElement = element.childNodes[i];
if( childElement.clientWidth == width && childElement.clientHeight == height ){
results.push(childElement);
results = results.concat(findElements(width, height, childElement));
} else if( childElement.clientWidth < width || childElement.clientHeight < height ){
continue;
} else {
results = results.concat(findElements(width, height, childElement));
}
}
return results;
}
findElements(myWidth, myHeight, document);