jQuery: comment faire pour vérifier si l'enfant est d'abord et aussi la dernière

Je suis en train de mettre un style personnalisé pour les éléments qui sont

  • ul - le premier dans le nombre d'enfants (ul.premier)
  • dernier dans le nombre d'enfants (ul.en dernier)
  • le seul enfant (ul.d'abord.dernier ou ul.seulement)

HTML:

<ul class="selector">
    <li class="selector">some li
       <ul class="">
          <li>some fancy li - the ul parent should have first class</li>
       </ul>
       <ul class="">
          <li>some more li - the ul parent should have last class</li>
       </ul>
    </li>
    <li class="selector">some second li
        <ul class="">
          <li>some lonely li - the ul parent should have first and last classes</li>
       </ul>
    </li>
</ul>

alors je suis venu avec un morceau de jQuery en espérant faire le tour

$('ul.selector li.selector > ul').each(function () {
  if ($(this).is(':first') && $(this).is(':last')) {
    $(this).addClass('first last');
  } else if ($(this).is(':first')) {
    $(this).addClass('first');
  } else if ($(this).is(':last')) {
    $(this).addClass('last');
  }
});

Merci pour toute suggestion.

JOUR - là est un violon, vous pouvez jouer avec, sur l'une des réponses: http://jsfiddle.net/qAtpe/

OriginalL'auteur thednp | 2012-07-20