2009-07-20 10 views
13

Digamos, por ejemplo, tengo un cuerpo con la clase "prueba" y quiero tomar esa clase y agregarla a otro div, ¿cómo puedo hacer esto con jQuery?Copia la clase de un elemento a otro

Gracias

Editar: Algo así?

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

¿Quiere decir que quiere copiar el estilo de esa clase a otro div? –

+0

No Quiero agregar una clase a mi cuerpo y hacer que se agregue a un elemento específico. –

Respuesta

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

debería hacerlo - sintácticamente no probado, pero es más o menos lo que haría.

+0

sintácticamente debería ser algo así como: if ($ ('element'). HasClass ("test")) { $ ('element2'). AddClass ('test'); } parece ser la estructura del método. ¡Nunca puede recordar la sintaxis! –

35

Me encontré con su pregunta mientras buscaba una solución para el mismo problema. Aunque la solución propuesta funciona, debes conocer el nombre de la clase.

aquí hay otra forma de hacerlo sin conocer los nombres de las clases. Como se pensaba, utiliza .attr()

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

El uso de múltiples selectores no está funcionando realmente, sin embargo, qué tipo de sentido :)

0

El enlace a continuación para intentar copiar la clase o la identificación de los atributos de un elemento de otro. También contiene ejemplos en vivo de cómo hacerlo.

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


Éstos son algunos ejemplos breves:

Copiar todas las clases de un elemento a otro

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

Si el elemento tiene múltiples clases, conseguir en matriz y copie solo la segunda clase (o cualquier otra clase):

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

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

Esto dará lugar a la matriz a continuación, y se puede valores de salida, proporcionando la posición de matriz:

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

copia de ID de elemenet a otro

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

Debe utilizar esto si solo desea agregar clases de otro elemento sin eliminar las clases existentes:

$('.i_want_your_classes').addClass($('.have_my_classes').attr("class")); 
Cuestiones relacionadas