2009-10-08 6 views
1

Eh bien, j'ai déjà vu cette question here. Mais je suis un peu confus. Il y avait plusieurs solutions proposées: -Obtenir la classe (s) d'un div en utilisant jquery

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

    Celui-ci était la solution retenue avec 2 voix jusqu'à.

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

    Cela a obtenu un vote trop.

Quelle est la bonne? Et si les deux sont corrects, quelle est la différence entre les deux?

+0

Si vous voulez seulement tester si un élément a un nom de classe particulier, pensez à utiliser la méthode 'is' de jQuery -' $ ("# div1"). is (". certains-classe ")' –

+0

Cool ... merci Alex .. !! – Manish

Répondre

5

il est autorisé à utiliser 'class', jQuery le corrigera, mais jQuery recommande d'utiliser 'className' Attributes/attr

pour éviter la collision avec la définition des classes, DOM a renommé l'attribut 'class' en 'className'. même chose pour l'attribut 'for' qui a été renommé 'htmlFor'. (Voir here: 1.6.2 Exceptions de nommage)

3

Il n'y a pas d'attribut HTML className - le bon code est:

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

className est une propriété DOM Javascript, donc si vous ne l'utilisez jQuery, vous pouvez faire:

var divClass = document.getElementById('div1').className; 
+0

bien, l'option className était la solution acceptée sur le lien vers la question que j'ai fournie !! – Manish

+0

J'ai toujours utilisé 'class', mais oui, il semble que najmeddine a raison aussi dans sa réponse (ou en fait, nous avons tous les deux raison): http://www.nabble.com/class-or-className-td5219071s27240.html –

+0

Oui, je suppose qu'il est plus correct .. !! :-) Donc, marquer sa réponse comme la solution – Manish

Questions connexes