2009-07-20 9 views
13

Dire par exemple que j'ai un corps avec la classe "test" et que je veux prendre cette classe et l'ajouter à une autre div, comment puis-je faire cela avec jQuery?Copier une classe d'un élément à un autre

Merci

Editer: Quelque chose comme ça?

$("body.test").clone().attr("class").prependTo("div"); 
+0

Voulez-vous dire que vous voulez copier le style de cette classe à un autre div? –

+0

Non Je veux ajouter une classe à mon corps et l'ajouter à un élément spécifique. –

Répondre

-5
$('element').hasClass("test", function() { 
$('element2').addClass("test"); 
}); 

devrait le faire - syntaxiquement non testé, mais il est à peu près ce que je ferais.

+0

Syntactiquement devrait être quelque chose comme: if ($ ('élément'). HasClass ("test")) { $ ('element2'). AddClass ('test'); } semble être la structure de la méthode - ne peut jamais se souvenir de la syntaxe! –

35

Je suis tombé sur votre question lors de la recherche d'une solution au même problème. Bien que la solution proposée fonctionne, vous devez connaître le nom de la classe.

Voici une autre façon de le faire sans connaître les noms des classes. Comme vous le pensiez, il utilise .attr()

$("#MyTargetElementId").attr("class", $("body.ToCopy").attr("class")); 

L'utilisation de plusieurs sélecteurs ne fonctionne pas vraiment bien, ce qui en fait genre de sens :)

0

Le lien ci-dessous peut vous aider à copier la classe ou id attributs d'un élément un autre. Il contient également des exemples en direct comment le faire.

http://html-tuts.com/copy-class-id-to-another-html-element-with-jquery/


Voici quelques courts exemples:

Copiez toutes les classes d'un élément à un autre

$('.differentClass').addClass($('.anotherClass').attr('class')); 

Si l'élément a plusieurs classes, les obtenir dans le tableau et copier uniquement la deuxième classe (ou toute autre classe):

var getClasses = $('.someClass').attr('class'); 
var splitClasses = getClasses.split(' '); 

$('.differentClass').addClass(splitClasses[1]); 

Cela se traduira dans le tableau ci-dessous, et vous pouvez les valeurs de sortie en fournissant la position de tableau:

splitClasses[0] => 'firstClass' 
splitClasses[1] => 'secondClass' 
splitClasses[2] => 'thirdClass' 

Copie Id de Elemenet à un autre

$('.someClass').attr('id', $('#someId').attr('id')); 
2

Vous devez utiliser ceci si vous voulez juste ajouter des classes d'un autre élément sans enlever les classes existantes:

$('.i_want_your_classes').addClass($('.have_my_classes').attr("class")); 
Questions connexes