web-dev-qa-db-fra.com

Obtenir le premier élément visible avec jQuery

Essayer d'obtenir le premier élément visible d'une liste en utilisant les pseudo-sélecteurs :first et :visible de jQuery, comme suggéré ici: https://stackoverflow.com/a/830611/165673 mais cela ne fonctionne pas:

Fiddle:http://jsfiddle.net/FAY9q/4/

HTML:

<ul>
    <li>Item A</li>
    <li>Item B</li>
    <li>Item C</li>
</ul>
<ul>
    <li style="display:none;">Item A</li>
    <li>Item B</li>
    <li>Item C</li>
</ul>

JQUERY:

$('li:visible:first').css('background','blue');

Le premier élément de chaque liste doit devenir bleu ...

19
Yarin

Essayez d'utiliser ceci:

$('ul').find('li:visible:first').css('background','blue');

Actuellement, votre code reçoit juste le premier élément li visible sur la page et définit la couleur d'arrière-plan. Ce code sélectionne tous les éléments ul puis trouve la première li visible dans chacun d'eux et applique le style.

Ici ça marche: http://jsfiddle.net/FAY9q/5/

43
Joe

Qu'en est-il d'utiliser ceci: 

li:visible:not(:visible ~ :visible)
0
user3353523