2014-10-11 130 views
2

我試圖將我的頁面帖子設置爲卡片到id =「content」的一個div(如G +上)。jQuery - 設置計算的div寬度

#content { 
    margin-top: 120px; 
    margin-bottom: 70px; 
    margin-left: auto ; 
    margin-right: auto ; 
    height: auto; 
} 
.card { 
    height: 250px; 
    width: 500px; 
    margin: 10px; 
    float: left; 

} 

我想計算一下我可以在屏幕上放入多少.card。 所以,我想這一點:

$(document).ready(function() { 
    "use strict"; 
    var cardAmount = (Math.floor($(window).width/520))*520; 
    $("#content").css("width", cardAmount); 

}); 

但問題是,(我認爲).css必備的第二個參數的字符串,它不是。

+0

您忘記'.width'後的括號。將其更改爲'.width()':[** working result **](http://jsfiddle.net/nquhwh7z/1/) – myfunkyside 2014-10-11 18:24:38

回答

4

這個問題很可能是你需要添加一個單位到這個數字,所以CSS引擎知道如何處理它。

此外,您的代碼還有另一個問題 - 您的未調用寬度函數此處:$(window).width。請記住,寬度是來自jQuery API的函數,而不是您可以簡單得到的DOM API參數。所以整個修復很簡單:

var cardAmount = Math.floor($(window).width()/520); 
$("#content").css("width", cardAmount + "px"); 

這裏 - 看看它是如何工作的this fiddle

+0

它工作完美!謝謝!這個用於計算寬度的腳本也是錯誤的(它計算出可以屏幕顯示多少張牌,而不是根據#內容的寬度多少,但是我在我的問題中更新了它。 – 2014-10-11 18:36:52

0

我猜你缺少與在CSS中像素或百分比的語法。

$("#content").css("width", cardAmount+"%");#or 
$("#content").css("width", cardAmount+"px");#or 
$("#content").css("width", cardAmount+"em");