2009-10-21 4 views
1

je besoin d'ajouter et de supprimer la classe sur un élément ayant plusieurs classes:Obtenir la valeur de classe d'éléments ayant plusieurs classes affectées à l'aide jquery

Ceci est le code html:

<div class="heading"> more html code here </div> 

Je veux ajouter classe et obtenir la valeur de la classe ajoutée. Puis-je faire ceci? Si non, comment une nouvelle classe peut-elle être ajoutée ou supprimée?

if ($(".heading").attr('class') == 'hidden') then $(".heading").removeClass('hidden'); 
else $(".heading").addClass('hidden'); 

Fondamentalement, ce que je vais faire est de basculer hide/show. Je ne veux pas utiliser la fonction bascule car elle gâche la table.

Répondre

5

Le saviez-vous? toggleClass()?

$('.heading').toggleClass('hidden'); 

Cela devrait vous permettre de faire ce que vous essayez de faire sans même avoir besoin de savoir ce qu'est la classe actuelle. En général, si vous souhaitez vérifier une classe spécifique sur un élément pouvant contenir plusieurs classes, utilisez hasClass() au lieu de attr('class').

+0

Il résout la moitié du problème. L'autre problème est d'obtenir la valeur de la classe pour vérifier si la classe 'cachée' est ajoutée. Notez que lorsque l'ID de la classe 'hidden' est ajouté, la div a deux classes déclarées et la vérifier avec .attr ('class') ne fonctionnera pas. if ($ (". Heading"). Attr ('class') == 'caché'); -> ça ne marchera pas. Je ne veux pas manipuler la classe cachée dans CSS. – kratz

+0

Je néglige votre dernier paragraphe ... merci. Ça marche. – kratz

+0

De rien! Pourquoi ne pas accepter la réponse? –

1

Si la classe n'est pas utilisée pour autre chose que le masquage et l'affichage de l'élément, vous pouvez simplement utiliser jQuery's toggle method pour afficher et masquer des éléments.

$('.heading').toggle(); 
+0

Je suis intéressé de comprendre comment vérifier l'élément certain (avec la déclaration de classe multiple) a une classe particulière. – kratz

Questions connexes