2010-06-09 89 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