2008-09-04 14 views
20

Un .container puede contener muchos .components y .components mismos pueden contener .containers (que a su vez puede contener .components etc. etc.)jQuery: ¿Se puede seleccionar por regla de CSS, no por clase?

código dado como esto:

$(".container .component").each(function(){ 
    $(".container", this).css('border', '1px solid #f00'); 
}); 

Qué hacer Necesito agregar a la línea dentro de las llaves para seleccionar solo los contenedores .contenedores que tienen su ancho en CSS establecido en 'auto'? Estoy seguro de que es algo simple, pero realmente no he usado tanto jQuery.

+0

Muchas gracias por sus respuestas. Me hubiera gustado idealmente incluir la regla CSS dentro del selector, de modo que tuviera un grupo de todos los .containers que están dentro de un componente que tiene un ancho de CSS: automático, pero no importa. –

Respuesta

18
$(".container .component").each(function() 
{ 
    $(".container", this).each(function() { 
     if($(this).css('width') == 'auto') 
     { 
      $(this).css('border', '1px solid #f00'); 
     } 
    }); 
}); 

similar a la otra respuesta, pero ya que los componentes también pueden tener múltiples recipientes, también necesita el .Cada() comprobar en aquí también para la anchura.

4
$(".container .component").each(function() { 
    if ($(".container", this).css('width') === "auto") 
     $(".container", this).css('border', '1px solid #f00'); 
}); 
16

Es posible que desee consultar .filter().

Algo así como:

$('.container .component .container') 
.filter(function() {return $(this).css('width') == 'auto';}) 
.css({border: '1px solid #f00'}); 
+0

esto es lo que estoy buscando, con una sola línea para lograr. –

Cuestiones relacionadas