2

質問 1: 同じクラス化された div 要素の css を eq() で順番に操作しようとしていますが、eq() 値にアクセスできません。

質問 2: switch メソッドでこれを試しました。for ループのような少ないコードでこの進行を行う方法はありますか?

これはデモです

HTML

<div id="a" class="ele">0</div>
<div id="b" class="ele">1</div>
<div id="c" class="ele">2</div>

jQuery

$('.ele').each(function() {
var eleH = 100;
var add = 10;

 $('.ele').eq(X); //trying to get value here

 switch(X) {
  case 0:
    $('.ele').css({'height': (eleH + add) + 'px'}); // #a { height:110px}
    break;
  case 1:
    $('.ele').css({'height': (eleH + (add*2)) + 'px'}); // #b { height:120px}
    break;
  case 2:
    $('.ele').css({'height': (eleH + (add*3)) + 'px'}); // #c { height:130px}
    break;
 }

});
4

3 に答える 3

2

これをチェックしてくださいhttp://jsfiddle.net/Aw39W/4/

あなたはXとプロジェクトに値を割り当てていません

$('.ele').each(function(X) {
    var eleH = 100;
    var add = 10;
    
    $('.ele').eq(X); //trying to get value here

    switch(X) {
      case 0:
        $(this).css({'height': (eleH + add) + 'px'}); // #a { height:110px}
        break;
      case 1:
        $(this).css({'height': (eleH + (add*2)) + 'px'}); // #b { height:120px}
        break;
      case 2:
        $(this).css({'height': (eleH + (add*3)) + 'px'}); // #c { height:130px}
        break;
    }

});
于 2012-06-29T23:27:46.267 に答える
2

何をしたいのかわかりませんが、位置に応じて CSS プロパティを変更したい場合は、次のようにできます。

$('.ele').each(function(i) {
    $(this).css('height', 100 + (10*i));
});

これが作業バージョンです:http://jsfiddle.net/Aw39W/6/

于 2012-06-29T23:30:55.080 に答える
0

要素自体ではなく、他の要素に高さを設定しているように見えるため、ここで何を達成しようとしているのかよくわかりませんproject。その高さを 3 回連続して設定して上書きすると、最後のループ反復のみが行われたように見えます。

いずれにせよ、理論的には、コードはそのように最適化できます。each()処理される要素のインデックスを示すパラメータが渡されることを覚えておくとよいでしょう。

var height = 100, add = 10;
$('.ele').each(index) {
    project.css({height: height + (add * index)});
});

また、ループの外側でディメンション変数を宣言していることにも注意してください。これらを再定義し続ける必要はありません。

于 2012-06-29T23:31:40.633 に答える