如何选择具有特定类的第一个元素

时间:2014-01-25 05:43:29

标签: html css

我有以下列表

    <ul class="list">
        <li>1</li>
        <li class="foo">2</li>
        <li class="foo">3</li>
        <li class="foo">4</li>
        <li>5</li>
    </ul>

我想使用css更改第一个和最后一个li's的颜色,其中包含foo

.list .foo:first-child,
.list .foo:last-child {
  color: red;
}

但它没有选择任何东西。请检查此fiddle

如何选择课程li's的第一个和最后一个foo。如果用css不可能,那我怎么能用jQuery做呢。

5 个答案:

答案 0 :(得分:6)

我认为没有针对此的css选择器解决方案,您可以使用jQuery来分配类

.selected {
    color: red;
}

然后

$('.list li.foo').filter(':first, :last').addClass('selected')

演示:Fiddle

答案 1 :(得分:1)

这样做

$('.list li.foo').filter(':first, :last').css( "color", "red" );

$('.list li.foo:first,.list li.foo:last').css( "color", "red" );

答案 2 :(得分:1)

我认为只用CSS就可以做到这一点,但jQuery很简单。这是一种方式:

var $lis = $("ul.list li.foo");
$lis.first().addClass("someClass");
$lis.last().addClass("someClass");

使用:

.someClass {
    color: red;
}

演示:http://jsfiddle.net/2T2yv/10/

或稍微不同的解决方案,不重复.addClass()

var $lis = $("ul.list li.foo");
$lis.first().add($lis.last()).addClass("someClass");

答案 3 :(得分:0)

.list .foo:nth-child(2n)
{
    color: green;
}

和Html是

 <ul class="list">
    <li>1</li>
    <li class="foo">2</li>
    <li class="foo">3</li>
    <li class="foo">4</li>
    <li>5</li>
</ul>

Fiddle

为了更好地理解nth-child(伪选择器),您可以浏览此http://css-tricks.com/how-nth-child-works/

答案 4 :(得分:0)

您可以使用jQuery

$('.list li.foo').first().css('color', 'red');
$('.list li.foo').last().css('color', 'red');