2

我正在尝试分配 10 个hi具有不同高度的 div 类。

我知道我可以这样做。

$(".hi:eq(0)").css("height",n[0]);
$(".hi:eq(1)").css("height",n[1]);
$(".hi:eq(2)").css("height",n[2]);
   ..........
$(".hi:eq(9)").css("height",n[9]);

但是,当我尝试使用for循环生成它们时,它不起作用。

for (i=0;i<10;i++){

$(".hi:eq(i)").css("height",n[i]);

}

这个也不行。

var i=0;
$(".hi:eq(i)").css("height",n[i]);

一定有什么问题:eq(i)

4

2 回答 2

6

这个问题是 JavaScript 没有字符串插值。

但是改为这样......

$(".hi").slice(0,10)
        .css('height', function(i) { 
            return n[i]; 
        });

这比使用非标准选择器重复 DOM 选择要高效得多

  • .slice(0,10)会给你前 10 个元素

  • .css()使用作为第二个参数传递的函数将返回值分配给height迭代中当前元素的 css 属性。当前迭代的索引由i参数表示。

于 2012-04-12T02:11:06.103 回答
3

i不能在字符串中。你可能想要这个:

for (i=0; i<10; i++){
    $(".hi:eq(" + i + ")").css("left", n[i]);
}
于 2012-04-12T02:10:09.563 回答