Jquery 计算页面上每个列表的项目数

Jquery 计算页面上每个列表的项目数,jquery,Jquery,我有一个包含多个列表的页面。每个列表都有不同数量的列表项。 我想在每三个列表项后显示一个少/多链接,如果列表中的项目少于3个,我想隐藏少/多链接 到目前为止,我得到的是: var n = $('ol.checkboxes').children.length; if (n > 3) { $('ol.checkboxes') .find('li:gt(2)') .addClass('toggleli')

我有一个包含多个列表的页面。每个列表都有不同数量的列表项。 我想在每三个列表项后显示一个少/多链接,如果列表中的项目少于3个,我想隐藏少/多链接

到目前为止,我得到的是:

    var n = $('ol.checkboxes').children.length;

    if (n > 3) {
           $('ol.checkboxes')
            .find('li:gt(2)')
            .addClass('toggleli')
            .hide()
            .end()
            .append(
                 $('<li class="collapsed">More>>  </li>').click(function(){
                 $(this).siblings('.toggleli').toggle();
              if($(this).hasClass('expanded')){
                  $(this).text(metaData['MORE_TEXT']);
                  $(this).removeClass('expanded');
              } else{
                  $(this).text(metaData['LESS_TEXT']);
                  $(this).addClass('expanded');
              }
        }));
       }
     });
var n=$('ol.checkbox').children.length;
如果(n>3){
$(“ol.复选框”)
.find('li:gt(2)'
.addClass('toggleli')
.hide()
(完)
.附加(
$(“
  • 更多>
  • ”)。单击(函数(){ $(this.sides('.toggleli').toggle(); if($(this).hasClass('expanded')){ $(this.text(元数据['MORE_text']); $(this.removeClass('expanded'); }否则{ $(this.text(元数据['LESS_text']); $(this.addClass('expanded'); } })); } });
    不幸的是,这将统计ol.复选框中的所有列表项。。 任何帮助都将不胜感激

    使用
    $(“ol”).find('li').length

    并且不止一次使用

    $("ol").each(function(){
     var len = $(this).find('li').length; //if nested list then use children() instead find()
     if (len>3){
      //do stuff
     }
    });
    
    使用
    $(“ol”).find('li').length

    并且不止一次使用

    $("ol").each(function(){
     var len = $(this).find('li').length; //if nested list then use children() instead find()
     if (len>3){
      //do stuff
     }
    });
    

    你能在发布jsbin或JSFIDLE时附带一些HTML示例吗?那么只需将“ol.checkboxes”选择器更改为适用于你的页面的选择器即可?这真的就是你要问的吗?你能在发布jsbin或JSFIDLE的同时附上一些HTML示例吗?所以只需将“ol.checkbox”选择器更改为适合你的页面的选择器即可?这就是你要问的所有问题吗?问题是,这也会计算嵌套的
    列表中的
  • 元素,这可能是不正确的。最好使用
    .children()
    而不是原始问题中的
    .find()
    。@Pointy thanx,是的,如果ol有嵌套列表,那么我们必须使用
    children()
    函数而不是
    find()
    太好了!我想出来了。谢谢大家。问题是,这会将嵌套的
    列表中的
  • 元素也计算在内,这可能是不正确的。最好使用
    .children()
    而不是原始问题中的
    .find()
    。@Pointy thanx,是的,如果ol有嵌套列表,那么我们必须使用
    children()
    函数而不是
    find()
    太好了!我想出来了。谢谢各位。