jQuery:`:eq(i)`选择

时间:2012-04-12 02:08:05

标签: javascript jquery

我试图分配10个不同身高的div hi

我知道我可以这样做。

$(".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)确实有问题。

2 个答案:

答案 0 :(得分:6)

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

但是这样做呢......

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

比使用非标准选择器重复DOM选择更有效。

  • .slice(0,10)将为您提供前10个元素

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

答案 1 :(得分:3)

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

for (i=0; i<10; i++){
    $(".hi:eq(" + i + ")").css("left", n[i]);
}