2013-07-25 52 views
1

更新:修改和編輯了一些您在下面指出的所有明顯問題。我變暖了嗎?更改div的寬度取決於頁面上使用jquery的div數

$(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的類更改爲具有不同寬度的類來做到這一點。

我在哪裏錯了?

我知道我將不得不找出另一個解決方案getElementsByClassName在IE中。

這裏是我的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; 
} 
+1

首先,你使用totaldivs作爲一個變量,那麼你正在使用的功能來代替。這將是空的。 – bryjohns

+0

你從不使用'totaldivs'。 'feature'或'features'?從未指定要移除'removeClass()'的類' –

+1

@JayHarris:不向''.removeClass()'傳遞參數'會移除所有的類。 – Blender

回答

0

確保您在文檔準備好之後指定totaldivs。

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

PS: 造型與jQuery始終是一個糟糕的主意,它殺死你,當你的應用程序擴展。
考慮使用CSS,如:
顯示:表細胞等

+0

display:table-cell對我的目的很有效 – peachtree

0

您定義totaldivs但使用features,你沒有定義。我只是這樣做:

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

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

    $features.removeClass().addClass(className); 
});