2012-07-13 25 views
16

Esto debería ser fácil pero no puedo hacerlo.Cómo encontrar el primer elemento secundario directo de un div

que tienen un elemento div con id "LeftScrollableDiv" y yo estoy tratando de encontrar el primer elemento secundario debajo de ella:

$("#LeftScrollableDiv:first-child"); 

<div id="LeftScrollableDiv:first"> 
    <table></table> 
</div> 

pero el resultado es nulo. ¿¿Alguna ayuda??

+5

'$ ('# LeftScrollableDiv') niños() primero()' – techfoobar

+0

http:..//api.jquery.com/ es tu amigo ... – Christoph

Respuesta

41
$('#LeftScrollableDiv').children().first(); 

API

+0

@christoph gracias por el formateo;) – rsplak

10
$("#LeftScrollableDiv > :first-child"); 
4

Los :first-child comprueba si su sujeto es el primer hijo de su padre. En este caso, está intentando seleccionar un elemento con id #LeftScrollableDiv que es el primer hijo de su elemento principal. Todos los selectores : solo filtran la selección previa, no seleccionan ningún elemento nuevo.

Desafortunadamente, no existe el método .firstChild en jQuery, por lo que siempre debe seleccionar primero a todos los niños y luego sacar el primero.

Un selector posible hacerlo es:

"#LeftScrollableDiv > :first" 

Which is far more efficient than > :first-child.

1

El siguiente no funcionó para mí:

$('#LeftScrollableDiv').children().first(); 

Si encuentra el mismo, entonces se puede tratar el método de objeto devuelto por los niños() como una matriz.

Para obtener el primer elemento:

$('#LeftScrollableDiv').children()[0] 

Para obtener el último elemento:

$('#LeftScrollableDiv').children()[$('#LeftScrollableDiv').children().length-1] 
Cuestiones relacionadas