80 votes

Comment puis-je obtenir la classe actuelle d'un div avec jQuery ?

En utilisant jQuery, comment puis-je obtenir la classe actuelle d'un div appelé div1 ?

123voto

CMS Points 315406

Il suffit de récupérer l'attribut de classe :

var div1Class = $('#div1').attr('class');

Exemple

<div id="div1" class="accordion accordion_active">

Pour vérifier les classes contenues dans le div ci-dessus

var a = ("#div1").attr('class'); 
console.log(a);

sortie de la console

accordion accordion_active

0 votes

Est-ce vraiment un attribut ? className .. ? N'est-ce pas ? className uniquement utilisé pour le javascript ? document.getElementById("div1").className

2 votes

J'ai vu maintenant que selon la doc de jQuery il est suggéré d'utiliser className pour qu'il n'interfère pas avec le mot réservé class en javascript...

2 votes

NOTE : Dans jQuery 1.6, ils enfin a fixé le attr et vous devez maintenant utiliser la méthode $(...).attr('class'); , className n'est qu'une propriété d'accès qui correspond à l'option class sur l'élément DOM - il n'y a pas d'attribut className attribut, c'est juste une propriété-.

19voto

Jakub Arnold Points 21204

Simplement par

var divClass = $("#div1").attr("class")

Vous pouvez faire d'autres choses pour manipuler la classe de l'élément.

$("#div1").addClass("foo"); // add class 'foo' to div1
$("#div1").removeClass("foo"); // remove class 'foo' from div1
$("#div1").toggleClass("foo"); // toggle class 'foo'

13voto

Russ Cam Points 58168
$('#div1').attr('class')

retournera une chaîne de caractères des classes. Transformez-la en un tableau de noms de classes

var classNames = $('#div1').attr('class').split(' ');

3 votes

+1'd. ($('#div1').attr('class') || '').split(' ') est plus sûr.

10voto

mt81 Points 1041

Dorénavant, il est préférable d'utiliser la fonction .prop() plutôt que .attr().

Voici la documentation de jQuery :

Depuis la version 1.6 de jQuery, la méthode .attr() renvoie undefined pour les attributs qui n'ont pas été définis. En outre, la méthode .attr() ne doit pas être utilisée sur les éléments suivants des objets simples, des tableaux, la fenêtre ou le document. Pour récupérer et modifier les propriétés du DOM, utilisez la méthode .prop().

var div1Class = $('#div1').prop('class');

0 votes

Il a encore changé depuis la 2.2 : À partir de jQuery 1.12/2.2, [...] l'attribut class est utilisé à la place. Ainsi, .removeClass() peut être utilisé sur des documents XML ou SVG. (source : api.jquery.com/removeClass )

2voto

Tzury Bar Yochay Points 3437
$("#div1").attr("class")

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