当只有一个项目时禁用last:child

时间:2012-02-22 14:30:58

标签: jquery list

我正在使用此代码为列表项添加类:

jQuery('#news ul > li:first-child').addClass('first');
jQuery('#news ul > li:last-child').addClass('last');

它运作良好。问题是当我只有一个项目时...代码是为同一个li添加两个类。

示例:

  1. 如果存在两个或更多项目,则完美无缺:

    <div id="nav">
    <ul>
    <li class="first">Item 1</li>
    <li class="last">Item 2</li>
    </ul>
    </div>
    
  2. 为唯一项添加两个类:

    <div id="nav">
    <ul>
    <li class="first last">Item 1</li>
    </ul>
    </div>
    
  3. 有没有办法禁用.last类,如果只有一个项目?

    谢谢!

3 个答案:

答案 0 :(得分:4)

$('#news ul > li:first').addClass('first');
$('#news ul > li:last').not('.first').addClass('last');

答案 1 :(得分:4)

为什么不用CSS处理这个?

#news ul > li.last { }

#news ul > li.first,
#news ul > li.first.last { }

答案 2 :(得分:3)

查看:only-child选择器:

$('#news ul > li:last').not(':only-child').addClass('last');