2012-08-16 42 views
2

我做了一个小函数来计算宽度和li的边距,但它给了我错误。如何使用jquery计算宽度和边距

<head> 

<style> 

.bill ul{ list-style:none} 

.bill ul li{ float:left; width:94px; margin-right:18px} 

.bill ul li:last-child { margin-right:0} 

</style> 

<script type="text/javascript" src="jquery-1.7.2.js"></script> 
<script type="text/javascript"> 

$(function(){ 

    $('.bill').find('li').each(function(){ 
      var jn += parseInt($(this).css('margin-right')) + $(this).width(); 
     }) 


     alert(jn) 


    }) 


</script> 

</head> 

<body> 

<div class="bill"> 
<ul> 
<li>aaa</li> 
<li>aaa</li> 
<li>aaa</li> 
<li>aaa</li> 
<li>aaa</li> 

</ul> 
</div> 

</body> 
+0

它给您带来了什么错误? – 2012-08-16 08:51:35

+0

它给我的语法错误“var jn + = parseInt($(this).css('margin-right'))+ $(this).width();”这里 – Carlos 2012-08-16 08:55:16

回答

3

您使用传递给.each()匿名函数内部的var关键字声明jn变量,这意味着变量的作用域该函数内部并不存在于其外部。

试图拨打alert(jn)可能会导致undefined被警告,因为jn变量在该语句的范围内不可见。

此外,声明变量并使用+=运算符是无效的语法。变量必须存在以便您添加其值。请尝试以下操作:

$(function(){ 
    var jn = 0; 

    $('.bill').find('li').each(function(){ 
     jn += parseInt($(this).css('margin-right')) + $(this).width(); 
    }); 

    alert(jn); 
}); 
相关问题