2010-06-09 120 views
0

我想計算每個子菜單的li的寬度然後放入ul元素。添加寬度李的父母ul

例如

<ul> 
<li>level 1</li> 
<li> 
    <ul style="widht:??;"> // total width li's added here 70px 
    <li>level 2</li> // width of this li 20px 
    <li>level 2</li>/ width of this li 50px 
    </ul> 
</li> 
<li>level 1</li> 
<li>level 1 
    <ul style="widht:??;"> // total width li's added here 70px 
    <li>level 2</li> // width of this li 20px 
    <li>level 2</li>/ width of this li 50px 
    </ul> 
</li> 
</ul> 

我有這個所以票價

if ('#menu li:has(ul) ul'){ 

    $('li').each(function(){ 

     widthParentUl += $(this).outerWidth(true) 
    }); 

$(this)parent.('ul').attr('style','width:' + widthParentUl +'px; display:block; background:red;'); 

} 
+0

你能告訴我們最後階段應該是什麼樣子?直到那時,爲什麼不'ul {width:100%; }' – balexandre 2010-06-09 08:07:32

回答

1

thnx尋求幫助。我現在有這個,它的寬度是它的parrent ul。

$('#menu ul li > ul').each(function(){ 
     var liItems = $(this); 
     var Sum = 0; 
     if(liItems.children('li').length >= 1){ 
     $(this).children('li').each(function(i, e){ 
       Sum += $(e).outerWidth(true); 
     }); 
     $(this).width(Sum+1); 
     } 
}); 
0

也許這可以幫助:您的評論

width off all submenu LI's jquery

基地,給這一個鏡頭:

var Sum = 0; 

$('ul ul').each(function(){  
    $(this).children('li').each(function(i, e){ 
     Sum += $(e).outerWidth(); 
    }); 

    $(this).width(Sum); 
}); 
+0

給出了子菜單li的全部寬度。我想寬度在李的裏面。 所以在子菜單1中是總寬度100px這是添加到ul關子菜單1.子菜單2總共有200px這是添加到ul關子菜單2 – Epco 2010-06-09 08:12:43

+0

@Epco:哦,只是意識到你是同一個人:)我更新了答案,這是否符合您的要求? – jAndy 2010-06-09 08:18:14

+0

第一個子菜單現在是正確的:)當我檢查子菜單2 ul時,他將子菜單1和2的總數加在一起。例如,當sub 1 li是100px並且submenu 2 li是50px時,那麼ul的子菜單2現在獲得150px的寬度。 – Epco 2010-06-09 09:12:05