Javascript 向ul添加一个大于(或)小于2 li的类';s

Javascript 向ul添加一个大于(或)小于2 li的类';s,javascript,jquery,Javascript,Jquery,我正在尝试为每个ul添加一个类,该类具有多于(或等于&少于)2个li 不知怎的,我不能让它继续。我要么在所有2级ul中增加一个类,要么不增加 以下是我正在使用的代码: $(document).ready(function() { var countli = $('ul.level_2 li').length; if(countli >= 3) { $("ul.level_2").addClass("short"); } }); 我错过了什么 你所做的是把一

我正在尝试为每个ul添加一个类,该类具有多于(或等于&少于)2个li

不知怎的,我不能让它继续。我要么在所有2级ul中增加一个类,要么不增加

以下是我正在使用的代码:

$(document).ready(function() {
  var countli = $('ul.level_2 li').length;
    if(countli >= 3) {
      $("ul.level_2").addClass("short");
    }
});
我错过了什么


你所做的是把一切都概括起来。使其在闭包内具体化。请参阅以下代码段:

$(文档).ready(函数(){
$('ul.level_2')。每个(函数(){
if($(this.children().length>2)
$(此).addClass(“短”);
});
});
*{font-family:'Segoe-UI';}
ul{颜色:蓝色;}
.short{颜色:红色;}
.large{颜色:绿色;}

  • 无子菜单
  • 长子菜单
    • 某物
    • 某物
    • 某物
    • 某物
    • 某物
  • 短子菜单
    • 某物
    • 某物

你所做的是你在概括一切。使其在闭包内具体化。请参阅以下代码段:

$(文档).ready(函数(){
$('ul.level_2')。每个(函数(){
if($(this.children().length>2)
$(此).addClass(“短”);
});
});
*{font-family:'Segoe-UI';}
ul{颜色:蓝色;}
.short{颜色:红色;}
.large{颜色:绿色;}

  • 无子菜单
  • 长子菜单
    • 某物
    • 某物
    • 某物
    • 某物
    • 某物
  • 短子菜单
    • 某物
    • 某物

您可以将类添加到
ul
元素中,该元素具有第三个
li
子元素(即具有超过2个
li
),如

$(文档).ready(函数(){
$('ul.level_2')。has('li:eq(2)')。addClass(“short”);
});
ul{
颜色:蓝色;
}
.短{
颜色:红色;
}
.大{
颜色:绿色;
}

  • 无子菜单
  • 长子菜单
    • 某物
    • 某物
    • 某物
    • 某物
    • 某物
  • 短子菜单
    • 某物
    • 某物

您可以将类添加到
ul
元素中,该元素具有第三个
li
子元素(即具有超过2个
li
),如

$(文档).ready(函数(){
$('ul.level_2')。has('li:eq(2)')。addClass(“short”);
});
ul{
颜色:蓝色;
}
.短{
颜色:红色;
}
.大{
颜色:绿色;
}

  • 无子菜单
  • 长子菜单
    • 某物
    • 某物
    • 某物
    • 某物
    • 某物
  • 短子菜单
    • 某物
    • 某物
您应该使用

将匹配的元素集减少为与选择器匹配或通过函数测试的元素集

剧本

您应该使用

将匹配的元素集减少为与选择器匹配或通过函数测试的元素集

剧本

$(文档).ready(函数(){
$(“ul.level_2”)。每个(函数(){
var countLi=$(this.find(“li”).length;
if(countLi
$(文档).ready(函数()){
$(“ul.level_2”)。每个(函数(){
var countLi=$(this.find(“li”).length;

如果(countLi您一次计算所有
ul
s中的
li
s,如果总计数为
=3
,则将类添加到所有
ul
s中。您一次计算所有
ul
s中的
li
s,如果总计数为
=3
,则将类添加到所有
中。谢谢!我已将答案标记为正确答案,因为过滤函数是made的最紧凑的代码。谢谢!我标记的答案是正确的,因为过滤器功能最紧凑的代码。谢谢,这是工作…但是我检查了Satpal的解决方案,因为过滤器解决方案似乎是一个更好的方法…谢谢,这是工作…但是我检查了Satpal的解决方案,因为过滤器解决方案似乎是一个更好的ap方法…谢谢,这有效…但是我检查了Satpal的解决方案,因为过滤解决方案似乎是更好的方法…谢谢,这有效…但是我检查了Satpal的解决方案,因为过滤解决方案似乎是更好的方法…谢谢,这有效…但是我检查了Satpal的解决方案,因为过滤解决方案似乎是更好的方法…Y你紧随其后,因为我真的很欣赏你的解释和solution@TheGmo谢谢,伙计。谢谢,这是有效的…但是我检查了Satpal的解决方案,因为过滤解决方案似乎是一个更好的方法…你紧随其后,因为我非常感谢你的解释以及solution@TheGmo谢谢你,伙计。
$("ul.level_2").filter(function () {
    return $(this).find('li').length >= 3
}).addClass("short");
$(document).ready(function() {
    $("ul .level_2").each(function(){
        var countLi = $(this).find("li").length;
        if(countLi <= 3 ){
           $(this).find("li").addClass("short");
         }
    });
});