Le comte li éléments qui sont visibles avec jQuery
Im comptage mon li éléments avec les éléments suivants script jQuery:
HTML:
<ul class="relatedelements">
<li style="display:none;" class="1">anything</li>
<li style="display:none;" class="2">anything</li>
<li style="display:none;" class="3">anything</li>
</ul>
jQuery:
$(function() {
var numrelated=$('.relatedelements > li').length;
$('.num-relatedelements').html(numrelated);
});
--> Le script retourne: 3
- Je changer la style="display: none"
propriété de certains de la li éléments lorsque $(document).ready
avec jQuery, comme: $('.2').show();
Je veux maintenant changer le script de façon à ne compter que le visible li éléments avec le script suivant (j'ai juste ajouté :visible à la suite de la jQuery docs):
$(function() {
var numrelated=$('.relatedelements > li:visible').length;
$('.num-relatedelements').html(numrelated);
});
--> Le script retourne: rien
Je n'ai aucune idée de pourquoi ça ne marche pas - peut-être que quelqu'un a des conseil ou une idée?
Toute aide est la bien appréciés. Merci d'avance!
- Merci à tous! je pense donc, mon problème est ailleurs dans le code - Cependant c'est étrange, comme le couting script fonctionne, mais quand j'ajoute
:visible
il se bloque. Cependant, je suis maintenant à l'aide d'une solution de contournement. Quand j'ai changer l'affichage de:aucune propriété css, je suis en ajoutant une classe.addClass("countme")
de la li les éléments qui sont visibles. Je suis maintenant en comptant tous li éléments qui ont la classeli.countme
Merci pour votre aide!
Vous devez vous connecter pour publier un commentaire.
beau travail pour moi
JsFiddle Lind : http://jsfiddle.net/xuckF/1/
Fonctionne très bien ici:
http://jsfiddle.net/jtbowden/FrPPr/ (1 visible)
http://jsfiddle.net/jtbowden/FrPPr/1/ (0 visible)
Maintenant, en utilisant des numéros comme les noms de classe est illégale. (Spec W3Cde balle, 2) les noms de Classe doivent commencer par une lettre. Peut-être faire les manipulations qui est à l'origine des problèmes?
Autre que cela, je ne peux que deviner votre problème est ailleurs. Êtes-vous à l'aide de la dernière version de jQuery? (Bien que dans mes tests, cela fonctionne tout le chemin du retour à 1,3, puis ça ne marche pas à tous)
Avez-vous orthographiez mal "visible" dans votre code. (J'ai fait ça avant)
Élément supposé caché que si lui ou ses parents consomme pas d'espace dans le document. CSS visibilité n'est pas pris en compte.
Vue:
CSS
JS
J'ai fait un jsfiddle pour vous: http://jsfiddle.net/mgrcic/3BzKT/3/
Il fonctionne comme ça:
Vous pouvez voir exemple de travail il y.
Il suffit de prendre un coup d'oeil à ceci:
http://jsfiddle.net/vnMrQ/
Oui, comme tout le monde l'a déjà dit, il fonctionne très bien, même lorsque vous .show() de l'élément doc prêt:
http://jsfiddle.net/bKyt4/
Votre script ne renvoie rien, car tous les DIV sont cachés. Elle renvoie 1 si 1 est affiché.
J'ai essayé ceci et cela semble marcher, c'est à dire un résultat de "1".
NB: je ne pense pas avoir les numéros de la valeur d'un attribut est valable de balisage
En ligne l'une de définir simplement un div ou span ou un paragraphe où vous souhaitez afficher le comte, et dans la deuxième ligne de l'ul contenant li