2012-08-16 41 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); 
}); 
相關問題