jQuery:匹配少于X个项目的列表

时间:2011-09-26 14:21:01

标签: jquery

我想在列表中添加一个类,但前提是它们有3个或更少的项目:

var ol = $('ol');
var len = ol.children('li').length;

//0 based?
while(len < 2) {

    $("ol").addClass("small-list");

}

http://jsfiddle.net/hryZ4/2/

我如何添加这样的条件子句?

我发现的只是一些不相关的东西:Fill list up to 10 items

3 个答案:

答案 0 :(得分:3)

这将检查并修复您网页上的每个<ol>

$('ol').filter(function() {
   return ($(this).children('li').length <= 3);
}).addClass('small-list');

即。对于每个<ol&gt;它满足所提供的功能,添加所需的类。

请参阅http://jsfiddle.net/alnitak/9uTvT/

答案 1 :(得分:1)

var ol = $("ol");
ol.each(function() {
    if ($(">li", this).length <= 3) {
        $(this).addClass("small-list");
    }
});

我想你可以试试这个:)

答案 2 :(得分:0)

你可以将函数传递给addClass(),因为jQuery 1.4

$('ol').addClass(function(){
    var retClass;
    if (this.children.length<=3){
        retClass='small-list';}
    return retClass;
});