2009-11-28 12 views
22

Tengo un cierto número de cuadros de div que tienen el mismo nombre de clase. Estoy tratando de aplicarles algo a todos, pero no tengo suerte. El código he construido hasta ahora esjquery: obtener elementos por nombre de clase y agregar css a cada uno de ellos

$(document).ready(function(){ 
    elements = $('div.easy_editor'); 
    elements.each(function() { $(this).css("border","9px solid red"); }); 
    //elements[0].css("border","9px solid red"); 
}); 

¿Me puede decir lo que estoy haciendo mal

+0

El código no es demasiado elegante, pero correcto. – alex2k8

Respuesta

40

puede probar esta

$('div.easy_editor').css({'border-width':'9px', 'border-style':'solid', 'border-color':'red'}); 

la $('div.easy_editor') se refiere a una colección de todos los divs que tienen el editor de clase fácil ya. No es necesario usar cada uno() a menos que haya alguna función que desee ejecutar en cada uno. El método css() realmente se aplica a todos los divs que encuentres.

+0

¡Gracias que funcionó! La fuente real de pronlem fue (tontamente tonto) que creé cuadros como tramos pero en jQuery estaba tratando de acceder a ellos como divs * facepalm * – Eugene

6

Lo que hace que jQuery sea fácil de usar es que no tiene que aplicar atributos a cada elemento. El objeto jQuery contiene una matriz de elementos y los métodos del objeto jQuery aplican los mismos atributos a todos los elementos de la matriz.

También hay una forma más corta para $(document).ready(function(){...}) en .

lo tanto, esto es todo lo que necesita:

$(function(){ 
    $('div.easy_editor').css('border','9px solid red'); 
}); 

Si desea que el código funcione para cualquier elemento con esa clase, que sólo puede especificar la clase en el selector sin el nombre de la etiqueta:

$(function(){ 
    $('.easy_editor').css('border','9px solid red'); 
}); 
Cuestiones relacionadas