如何找到z-Index最大的元素?

时间:2013-01-19 15:49:35

标签: javascript css z-index

我有很多动态创建的元素,只要它获得z-Index ++,所以最新的元素随时都在上面。当点击其中一个时,他的z-Index max + 1。所以我需要获得元素,这是最重要的,我该怎么做?

原生JS只请。谢谢

3 个答案:

答案 0 :(得分:6)

不要试图找到它 - 你需要迭代所有的DOM。在动态创建它们时,只需保存对它的引用并每次更新它。或者只将当前最高z-index值存储在max变量中。

答案 1 :(得分:1)

http://jsfiddle.net/h4ets/

假设您只在样式属性

中应用z-index
var elems = document.body.getElementsByTagName("*");
var largest;
var check = 0;
for(i=0;i<elems.length;i++){
    if(elems[i].style.zIndex > check){
        check = elems[i].style.zIndex;
        largest = elems[i];
    }
}
// largest is the element
// check is the z-index value of the element with largest z-index

获取元素的计算样式似乎是webkit浏览器中的问题,例如chrome和safari,因为它返回auto,这是一个主要的问题,因为chrome特别是现在是一种流行且广泛使用的浏览器。所以现在我建议如果你想这样做,在样式属性中应用z-index,直到修复bug为止

答案 2 :(得分:0)

这是最佳解决方案

select "CustomerID",
       count(DISTINCT "OrderID") as OrderCount,
       count(DISTINCT case when "ReturnFlag" = 1 then "OrderID" end) as ReturnCount
from "Customer"
group by "CustomerID";