Different/Increasing CSS 许多具有相同 Class 的 DIV 的值

Different/Increasing CSS Value for Many DIVs With Same Class

我想使用 javascript 来更改许多单独的 DIV 的左边距值。要注意的是:

  1. 我只想使用一个 class名称和
  2. 我希望边距增加,例如 class 的每个实例增加 100px。这样,不是让所有 DIV 彼此重叠,每个 DIV 都将 space 出来:第一个在 margin-left:0px,第二个在 margin- left:100px,第三个在 margin-left:200px,依此类推。

这是我的代码,它简单地将相同的 margin-left 应用于所有 DIV。

<script>
    b = document.getElementsByClassName('spacing');
    for (i = 0; i < b.length; i++) {
    b[i].style.marginLeft = "100px";
    }
</script>

有没有办法让 javascript 依次找到 class 的每个实例,而不是简单地将 margin-left:100px 应用于所有实例,它会做类似的事情(保证金应用于class + X) 的最后一个实例,因此具有相同 class 名称的 100 个 DIV 中的每一个最终都具有唯一的 marginLeft 值?

您想要做的是通过循环的每次迭代来跟踪您增加的保证金:

b = document.getElementsByClassName('spacing');
var margin = 0;
for (i = 0; i < b.length; i++) {
   margin += 100;
   b[i].style.marginLeft = margin + "px";
}

这应该可以解决问题。

在此处查看一个工作示例:https://jsfiddle.net/c4p9ry46/

是的,有一种方法可以简单地将边距乘以迭代次数,例如 i*100+'px' 而不是“100px”

var b = document.getElementsByClassName('spacing'); for (i = 0; i < b.length; i++) { b[i].style.marginLeft = i*5+'px'; }

Here is the working example