web-dev-qa-db-fra.com

Comment sélectionner un li avec une classe spécifique?

<ul id="attached_deals_tab" class="nav nav-tabs">
  <li class="active">
    <a data-toggle="tab" href="#Test1">Test1</a>
  </li>
  <li class="">
    <a data-toggle="tab" href="#Test2">Test2</a>
  </li>
</ul>

Avec un jquery comme celui-ci, je pourrais dire obtenir tous les éléments de la liste:

$('#attached_deals_tab li');

Mais comment puis-je dire ne me montrer que le li qui a class="active"? En une seule ligne, s'il vous plaît.

Je sais comment le nier:

$('#attached_deals_tab li:not(.active)');

Mais pas l'inverse ...

14
Houman
$('#attached_deals_tab li.active');
20
jholloman

Cela devrait le faire, la syntaxe est la même qu'en CSS:

$('#attached_deals_tab li.active');
4
codebox

Vous pouvez simplement utiliser la classe une fois que l'ID ul a été spécifié:

$("#attached_deals_tab .active");

Sauf si vous avez quelque chose d'autre que lis dedans et que quelque chose est également appliqué à la classe active, ce qui serait étrange.

1
Grant Thomas

Vous devez utiliser le sélecteur enfant pour préparer votre code pour d'éventuelles futures listes imbriquées:

$('#attached_deals_tab > .active')

Il sélectionnera uniquement les enfants directs. Selon la spécification, un ul ne peut avoir que li comme enfants, donc lors de l'utilisation du sélecteur d'enfant, .active devrait suffire, pas besoin de préciser li.active.

Par listes imbriquées, je veux dire quelque chose comme ceci:

<ul id="attached_deals_tab">
    <li class="active"></li>
    <li></li>
    <li>
        <ul>
            <li class="active"></li>
            <li></li>
        </ul>
    </li>
</ul>

La lecture de documentation sur les sélecteurs jQuery aidera également beaucoup.

0
kapa

Simple, fais

$('#attached_deals_tab li.active').(...)
0
SexyBeast