检查列表项的数量,如果条件存在则列入列

时间:2010-08-25 16:01:36

标签: javascript jquery if-statement conditional

示例页面:http://vincent-massaro.com/columns/columns.html

在此页面上,有两个有序列表,一个包含四个项目,另一个包含八个。我需要编写一个条件来检查每个有序列表中有多少列表项,如果它超过四个,则将它们分成列;如果少于四个,不要拆分成列。现在完成此任务的代码是:

$('。mcol',this).makeacolumnlists({cols:3,colWidth:0,equalHeight:'ul',startN:1});

提前致谢!

3 个答案:

答案 0 :(得分:1)

使用$('li').size()

检查li的数量

答案 1 :(得分:1)

如果您希望length下的<li>元素的<ol>属性,则需要为每个 <ol>分别获取该属性。< / p>

$('ol').each(function() {
    $(this).children('li').length;  // Gives you the number of <li>
                                    //    elements for the current <ol>
});

答案 2 :(得分:1)

一个很好的方法是使用自定义选择器。像这样:

$.expr[':'].hasmorethan4li = function(obj){
  return $(obj).children('li').length > 4;
};

让您这样做:

$('ol:hasmorethan4li').makeacolumnlists(....);

<小时/> 更新:根据评论中的OP问题,这里是4到12项列表的选择器版本:

$.expr[':'].hasbetween4and12li = function(obj){
  var len = $(obj).children('li').length; // so we only have to run this once
  return len >= 4 && len <= 12;
};