282 votes

Vérifier s’il existe des div avec certain nom de la classe

À l’aide de jQuery je suis générer par programme un tas de `` est comme ceci :

Un autre endroit dans mon code que j’ai besoin de détecter s’il existe des ces DIVs. Le nom de classe pour les DIV est la même mais l’ID change pour chaque div. Aucune idée comment les détecter à l’aide de jQuery ?

516voto

Shaz Points 7458

Vous pouvez simplifier ceci en cochant le premier objet qui est retourné de JQuery comme suit :

Dans ce cas, s’il y a une valeur truthy à la première ( `` ) de l’index, puis assumer classe existe.

Modifier le 10/04/2013 : J’ai créé un test de jsperf affaire ici.

142voto

Eli Points 7034

Vous pouvez utiliser size(), mais jQuery vous recommande d'utiliser la longueur d'éviter la surcharge d'un autre appel de la fonction:

$('div.mydivclass').length

Donc:

// since length is zero, it evaluates to false
if ($('div.mydivclass').length) {

http://api.jquery.com/size/

http://api.jquery.com/length/

Mise à JOUR

La réponse sélectionnée utilise un test de perf, mais c'est un peu imparfait, car il est aussi notamment la sélection d'éléments dans le cadre de la perf, ce qui n'est pas ce qui est testé ici. Voici une mise à jour du test de perf:

http://jsperf.com/check-if-div-exists/3

Mon premier run de l'essai montre que la propriété de la récupération est plus rapide que l'indice de récupération, bien que l'OMI c'est assez négligeable. Je préfère encore à l'aide de la longueur comme pour moi, il ne fait plus de sens à l'intention du code au lieu d'un plus laconique condition.

73voto

Hussein Points 23042
$('div').hasClass('mydivclass')// Returns true if the class exist.

46voto

Ronald Points 269

Voici une solution sans utiliser Jquery

lien de référence

10voto

Stefan Kendall Points 28274

Pour tester la `` éléments explicitement :

``

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X