Javascript 基于集合中lis数量的li动态宽度
我想根据列表中有多少个li将动态宽度设置为li。例如,如果有18个li(s)。每个宽度应为100%/18=5.55%。如果我有3套不同的ul,我该怎么办。我试着用这个Javascript 基于集合中lis数量的li动态宽度,javascript,jquery,Javascript,Jquery,我想根据列表中有多少个li将动态宽度设置为li。例如,如果有18个li(s)。每个宽度应为100%/18=5.55%。如果我有3套不同的ul,我该怎么办。我试着用这个 $('.lesson-nav ul li').width( 100 / $(".lesson-nav ul li").length + '%' ); 未知原因:此脚本提供了120%的宽度,而只有1 li,有18 li时为27.55%。根据: .css(width)和.width()之间的区别在于后者 返回小于单位的像素值(例如,
$('.lesson-nav ul li').width( 100 / $(".lesson-nav ul li").length + '%' );
未知原因:此脚本提供了120%的宽度,而只有1 li,有18 li时为27.55%。根据:
.css(width)和.width()之间的区别在于后者
返回小于单位的像素值(例如,400),而前者
返回单位完整的值(例如,400px)
所以你应该使用css(宽度)
而我无法重现你120%的问题。要回答您关于“如果我有3套不同的ul,我该怎么办”的问题,假设您有3套不同的
。第一课导航中有列表。。。像这样:
如果在一个.lesson nav
中有多组ul
,则可以修改选择器,如图所示
如果width(),检查li
它将是宽度:100%
,我看到5.55…%
即使你的答案在你的小提琴中也起作用,但我的编码由于一些其他本质而令人不安@nicael解决方案有效。谢谢。这真的很有帮助。
$('.lesson-nav ul li').css("width", 100 / $(".lesson-nav ul li").length + '%' );
$('.lesson-nav').each( function() {
$lis = $(this).find('ul li');
$lis.width( 100 / $lis.length + '%' );
});