2009-10-08 4 views

Répondre

102

Procurez-vous l'attribut class:

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

Exemple

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

Pour vérifier ce qui précède div pour les classes contenues dans ce

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

accordion accordion_active 
+0

est-ce vraiment un attribut? 'className' ..? Est-ce que 'className' n'est utilisé que pour javascript? 'document.getElementById (" div1 "). className' – peirix

+2

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

+2

** NOTE : ** Dans jQuery 1.6, ils * fixent * finalement la méthode 'attr', et vous devez maintenant utiliser $ (...). Attr ('class');', 'className' est juste une propriété accesseur qui mappe à l'attribut 'class' de l'élément DOM - il n'y a pas d'attribut' className', c'est juste une propriété-. – CMS

2
$("#div1").attr("class") 
11
$('#div1').attr('class') 

retournera une chaîne des classes. Mettez dans un tableau de noms de classe

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

a attribué la mention +1. ($ ('# div1'). attr ('class') || '') .split ('') est plus sûr imo. – user420667

1
var classname=$('#div1').attr('class') 
0

essayer cette

$ ("# div1"). Attr ("class")

16

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' 
1
var className=$('selector').attr('class'); 

ou

var className=$(this).attr('class'); 

le nom de classe de l'élément courant

7

A partir de maintenant est préférable d'utiliser la fonction .prop() au lieu du .attr() une.

Voici la documentation jQuery:

À partir de jQuery 1.6, la méthode renvoie undefined .attr() pour les attributs qui ne sont pas fixés. En outre, .attr() ne doit pas être utilisé sur objets simples, tableaux, la fenêtre ou le document. Pour récupérer et modifier les propriétés DOM, utilisez la méthode .prop().

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

La méthode addClass jQuery a un currentClass construit. Vous pouvez l'utiliser dans un appel de fonction.Comme si:

<div>First div</div> 
<div class="red">Second div</div> 
<div>Third div</div> 
<div>Fourth div</div> 

<script> 
    $("div").addClass(function(index, currentClass) { 
    var addedClass; 
    if (currentClass === "red") { 
     addedClass = "green"; } 
    return addedClass; 
    }); 
</script> 
0
<div id="my_id" class="my_class"></div> 

si c'est le premier div traitent alors comme si:

document.write("div CSS class: " + document.getElementsByTagName('div')[0].className); 

alternativement faire ceci:

document.write("alternative way: " + document.getElementById('my_id').className); 

Il donne les résultats suivants:

div CSS class: my_class 
alternative way: my_class 
0

si vous voulez chercher un div qui a plus de 1 classe essayez ceci:

Html:

<div class="class1 class2 class3" id="myDiv"> 

Jquery:

var check = $("#myDiv").hasClass("class2").toString(); 

ouput:

true

Questions connexes