2010-05-21 6 views
6

Supposons que j'ai un élément comme celui-ci:Comment obtenir le nom de la classe en utilisant jquery

<div id="dv" class="red green blue">Something Here !!</div> 

J'utilisé ceci:

alert($('#dv').attr('class')); 

Mais il me donne tous les trois en même temps, j'ai besoin individuellement probablement stocké dans un tableau.

Comment puis-je obtenir chacun de ces noms de classe à l'aide jquery? Devrait être simple, non?

Répondre

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

si vous avez juste besoin de savoir si un élément possède une classe que vous pourriez vouloir utiliser

if($('#dv').is('.green')){ 
    alert('its green!'); 
} 

ou

if($('#dv').hasClass('green')){ 
    alert('its green!'); 
} 

qui est une fonction dérivée. Gardez l'attention sur la notation différente

« .className » et juste « className »

3

La classe est un attribut de sorte que vous pouvez faire var classname=$("#dv").attr("class") alors vous pouvez le diviser en un tableau avec var array=classname.split(" ");

+0

j'ai mis à jour ma réponse, consultez plz –

+0

Mise à jour la réponse – mck89

1

utilisent ce

alert($('#dv').attr('class')); 
+0

i ont mis à jour ma réponse, chèque plz –

8

Il y a quelques façons en fonction de votre objectif (vous effectivement besoin d'un tableau, peut-être une méthode plus rapide!).

Pour obtenir un tableau des classes utilisent .attr() et .split():

$('#dv').attr('class').split(' ') == ['red', 'green', 'blue'] 

Pour obtenir la chaîne littérale utiliser .attr():

$('#dv').attr('class') == 'red green blue' 

Pour vérifier une utilisation de classe .hasClass():

$('#dv').hasClass('red') == true 
+0

+1 pour 'hasClass', ce qui est plus probable pour l'OP s'il tente de diviser l'attribut class en un tableau. –

+0

@Andy E tête - Considérant que l'ID est "dv", et les classes sont "rouge vert bleu" Je me demande si l'attribut de classe est utilisé utilisé comme stockage pour les valeurs RVB ?? De toute façon, +1 depuis que Nick a atteint son standard normal en couvrant les bases. – user113716

1

avec attr() vous pouvez définir ou récupérer n'importe quel attribut que vous voulez. Si vous avez plus d'une classe, vous pouvez diviser la chaîne attr vous donne de retour avec split("separator"). Split vous renvoie un tableau. $.each(array, function(i, data){}) vous permet de faire quelque chose pour chaque valeur dans un tableau. Si vous mettez qui, ensemble, cela est le résultat:

$.each($("#dv").attr("class").split(" "), function(i, data) { 
    alert(data) 
}) 

Et voici une démo avec votre code: http://jsfiddle.net/Cq5JD/

Questions connexes