【发布时间】:2011-04-17 01:36:21
【问题描述】:
在此post 的后续工作中,我将进一步挑战——如何循环仅具有 z-index 的 div 元素?
CSS,
#layer-1 { z-index:1; position:absolute; }
#layer-2 { z-index:2; position:absolute; }
#layer-3 { z-index:3; position:absolute; }
html,
<div id="layer-1">layer-1</div>
<div id="layer-2">layer-2</div>
<div id="layer-3">layer-3</div>
<div id="layer-4">layer-4</div>
jquery,
var index_highest = 0;
// more effective to have a class for the div you want to search and
// pass that to your selector
$("div").each(function() {
// always use a radix when using parseInt
var index_current = parseInt($(this).css("zIndex"), 10);
alert(index_current);
if(index_current > index_highest) {
index_highest = index_current;
}
});
这里的 jquery 代码循环每个 div 元素。当我的根文档中有大量 div 时,它不是是一个好的解决方案。所以我认为,理想情况下,代码可以只循环只有 z-index 的 div 元素,然后忽略其余的 div。
有可能吗?
谢谢。
【问题讨论】:
-
什么是循环遍历只有 z-index 的 div 元素,如果你能告诉我们可以建议一个更好的解决方案
-
我认为你正在做相反的事情,你应该在生成 html 时这样做,并且你应该知道什么元素具有高 z 索引。
-
@kobe:谢谢。它适用于我拥有的弹出 div。当我弹出一个新的 div 时,我可能已经存在另一个弹出 div。所以我每次都需要新的弹出 div 位于旧的弹出 div 之上。这就是为什么我需要找到最高的弹出 z-index 以便我可以将 +1 添加到新的弹出 div 的 z-index。但我不会循环我拥有的所有 div,因为完成循环需要很长时间。希望这是有道理的。谢谢。
-
您是否有很多弹出窗口或者它们过于动态?否则你可以手动给他们权利,
-
@kobe:我想说他们太有活力了。其中一些不是弹出窗口。他们只是有绝对的位置和z-index。