基于集合中lis数的li的动态宽度
我想根据列表中有多少li(s)将动态宽度设置为li(s)。 例如,如果有18个li(s)。 每个宽度应为100%/ 18 = 5.55%。 如果我有3组不同的ul,我该怎么办? 我试着用这个。
$('.lesson-nav ul li').width( 100 / $(".lesson-nav ul li").length + '%' );
由于未知原因:此脚本的宽度为120%,而只有1 li,当有18 lis时为27.55%。
根据文件 :
.css(width)和.width()之间的区别在于后者返回无单位像素值(例如,400),而前者返回单位完整的值(例如,400px)。
所以你应该使用css(width)
$('.lesson-nav ul li').css("width", 100 / $(".lesson-nav ul li").length + '%' );
虽然我无法重现你的120%问题。 要回答你关于“如果我有3组不同的ul应该怎么做”的问题,假设你有3个不同的.lesson-nav
有列表……就像这样:
的jsfiddle
$('.lesson-nav').each( function() { $lis = $(this).find('ul li'); $lis.width( 100 / $lis.length + '%' ); });
如果你在单个.lesson-nav
有多组ul
,那么你可以修改你的选择器有点像在这个JSFiddle中看到的
如果width()
由于某种原因不起作用,你也可以在这里用css("width",...)
替换width()
。