2014-10-11 133 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");