2

hi高さの異なる10 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()height2 番目の引数として関数を渡すと、反復の現在の要素の 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 に答える