You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为同class的DIV动态设置递增z-index的问题排查

问题分析

你的脚本存在两个核心问题:

  1. 嵌套循环逻辑错误:在.each()遍历每个div时额外嵌套了for循环,导致每个div的z-index被从0到8反复覆盖,最终所有div的z-index都会变成循环的最后一个值(8),完全无法实现逐个递增的效果。
  2. 固定循环次数不灵活:用i<9硬编码循环次数,无法适配实际数量未知的div。
修正方案

jQuery的.each()方法本身会返回当前元素的索引值(从0开始),直接用这个索引+1就能实现z-index从1开始逐个递增的需求,无需额外嵌套循环,还能自动适配任意数量的div。

修正后的JS代码:

$(".siblingsDiv").each(function(index) {
    $(this).css('z-index', index + 1);
});
完整可运行代码示例
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<style>
.siblingsDiv {
  background: yellow;
  height: 50px;
  margin-bottom: 20px;
  /* z-index仅对定位元素生效,需补充position属性 */
  position: relative;
}
</style>
<div class="siblingsDiv">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
<div class="siblingsDiv">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
<div class="siblingsDiv">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
<div class="siblingsDiv">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
<div class="siblingsDiv">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
<script>
$(".siblingsDiv").each(function(index) {
    $(this).css('z-index', index + 1);
});
</script>

补充说明:z-index仅对position值为relative、absolute、fixed或sticky的元素生效,因此需要给.siblingsDiv添加position: relative确保样式生效。

内容的提问来源于stack exchange,提问作者abcid d

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 05:04:52