2014-02-06 100 views
1

我得到了這個問題,我沒有得到正確的價值的李元素的寬度。Jquery。 .each()

$(document).ready(function() { 
    var naviLenght = 0; 
    var test = $('.navi.holder').width(); 
    console.log(test) 

    $('.navi.item').each(function(){ 
     naviLenght += $(this).width(); 
    }); 

    console.log(naviLenght); 
}); 

所以基本上我試圖用$.each()函數來獲取所有的李的寬度在我navibar但它不給我正確的寬度,它實際上有。 navibar的寬度是310px,但我進入.each()的值是197px

我在做什麼錯?

這裏是navibar的HTML:

<ul class="navi holder"> 
    <li><a href="#" class="navi item">Home</a></li> 
    <li><a href="#" class="navi item">Contact</a></li> 
    <li><a href="#" class="navi item">About us</a></li> 
    <li><a href="#" class="navi item">Order</a></li> 
</ul> 

http://jsfiddle.net/bHaLB/

所以我改變的jsfiddle一些事情,現在它給了我309px,但我得到了同樣的代碼,我的計算機和它277px:S當我嘗試IE和Firefox時,它說283? o.O

回答

0

我猜你的代碼的問題是,你正在使用width()不進行填充和邊框計數,但它看起來像你的說法,你要包括他們。嘗試jQuery.outerWidth()

$('.navi.item').each(function(){ 
    naviLenght += $(this).outerWidth(); 
}); 

什麼jQuery的醫生說大約outerWidth

獲取當前計算的寬度在匹配的元素集合,包括填充和邊界的第一要素。

+0

嘗試,然後我得到277px – user1901471

+0

我可以知道downvote的原因嗎? – sachinjain024