Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于集合中lis数量的li动态宽度_Javascript_Jquery - Fatal编程技术网

Javascript 基于集合中lis数量的li动态宽度

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()之间的区别在于后者 返回小于单位的像素值(例如,

我想根据列表中有多少个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()之间的区别在于后者 返回小于单位的像素值(例如,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 + '%' );
});