1

更新:以下で指摘した明らかな問題のいくつかを修正および編集しました。私は暖かくなってきていますか?

$(document).ready(function(){

   var totaldivs = $('.feature').length;

   if (totaldivs == 3){

removeClass().addClass('three-features');

   } else if(totaldivs == 2){

removeClass().addClass('two-features');

   } 

});

私は JavaScript/JQuery を初めて使用するので、ここでやろうとしていることには悲劇的な欠陥があるかもしれませんが、特定のクラスの div がページにいくつあるかを確認し、幅を変更するスクリプトを作成したいと思います。存在する数に基づくこれらのdiv。divの配列の長さを確認した後、divのクラスを幅の異なるクラスに変更することでこれを行う予定です。

ここでどこが間違っていますか?

IE で getElementsByClassName の別の解決策を見つけなければならないことはわかっています。

これが私のjsです:

var totaldivs = document.getElementsByClassName('feature');

$(document).ready(function(){

    if (features.length==3){

    $('.features').removeClass().addClass('three-features');

  } else if(features.length==2){

    $('.features').removeClass().addClass('two-features');

  } 

});

そして、ここに私のcssがあります

.feature {
float: left;
}
.two-features {
float: left;
width: 100px;
}
.three-features {
float: left;
width: 50px;
}
4

2 に答える 2

0

定義しますtotaldivsfeatures、定義しない を使用します。私は次のようにします:

var counts = ['one', 'two', 'three'];

$(document).ready(function() {
    var $features = $('.features');
    var className = counts[$features.length - 1] + '-features';

    $features.removeClass().addClass(className);
});
于 2013-07-25T00:39:48.407 に答える
0

ドキュメントの準備ができたら、必ず totaldiv を割り当ててください。

$(document).ready(function(){    
    var totaldivs = $('.feature').length;
    // and do something smarter like @Blender pointed out
}

PS: Jquery を使用したスタイリングは常に悪い考えであり、アプリが拡張されると死んでしまいます。display:table-cell などの
CSS の使用を検討してください 。

于 2013-07-25T03:06:20.183 に答える