2010-12-20 18 views
8

hey, pregunta rápida, no pude encontrar nada en la web. Tengo un div para padres y un div para niños dentro de él. para seleccionarlo con CSS se podría decir:jquery este selector de niños?

#parent .child {} 

En jQuery Tengo un var para mi elemento padre, sin embargo, ¿cómo puedo seleccionar el niño con esto? Sé que es fácil crear una nueva var, solo tengo curiosidad si es posible.

var Parent = $('#parent'); 

Parent.click(function() { 
$(this > '.child').hide(); 

gracias

+0

Tenga en cuenta que el [Selector 'EF'] (http://www.w3.org/TR/CSS2/selector.html#descendant-selectors) coincide no sólo los elementos secundarios, pero * * cualquier descendiente elemento de 'E'. Para los niños solo use ['E> F'] (http://www.w3.org/TR/CSS2/selector.html#child-selectors). – Gumbo

Respuesta

23

La sintaxis correcta es:

$(".child", this) 

Si sólo desea los directos hijos:

$("> .child", this) 

(mérito es de Gumbo de mencionando esto)

Update, dos años más tarde:

Puede utilizar $(this).find('> .child')

+0

+1 He usado esta solución :) –

1

probar este código:

$("#parent").click(function() { 
       $(this).next().hide(); 
}); 
1
var Parent = $('#parent'); 

Parent.click(function() { 
    $(".child", this).hide(); 
}); 

o

$("#parent").click(function() { 
    $(".child", this).hide(); 
}); 
6

Es posible que sólo invocar el .find() método:

var Parent = $('#parent'); 

Parent.click(function() { 
    $(this).find('.child').hide(); 
}); 

Si sólo desea seleccionar los elementos secundarios inmediatos, utilice el método .children() lugar:

Parent.click(function() { 
    $(this).children('.child').hide(); 
}); 

personas a menudo utilizan una sintaxis como

$('.child', this); 

aswell. No es muy conveniente para mí ya que escribes una orden "inversa" de alguna manera. De todos modos, esta sintaxis se convierte internamente en una declaración .find(), por lo que en realidad está guardando una llamada.

Ref .: .find(), .children()

1

U puede encontrar hijos de sus elementos primarios y aplicar CSS.

El código de muestra está a continuación.

var Parent = $('#parent'); 

Parent.click(function() { 
$(this).find('.child').hide();});