2012-01-31 32 views
15

Supongamos que tengo el siguiente código HTML -jQuery - Acceso a los elementos secundarios anidados

<DIV id="ParentDiv"> 
    <DIV id="SubDiv1"></DIV> 
    <DIV id="SubDiv2"> 
     <INPUT id="input"> 
    </DIV> 
</DIV> 

Para acceder al elemento de entrada usando jQuery, sería simplemente $ ("# entrada"). Lo que intento hacer es acceder a él, suponiendo que solo conozco el ID del Div. De nivel superior.

Actualmente tengo

$($($("#ParentDiv").children()[1]).children()[0]) 

Lo cual no parece funcionar. ¿Hay alguna manera más clara de escribir esto o la forma en que lo estoy haciendo está bien?

+1

Creo '$ ("# ParentDiv"). Find ('entrada ') 'también funciona – Murtaza

+0

Examine la [lista de selectores de jQuery] (http://api.jquery.com/category/selectors/) - verá cosas como el selector [' ": eq()" '] (http://api.jquery.com/eq-selector/) que le permite hacer esto:' $ ("# ParentDiv> div: eq (1)> input") ' – nnnnnn

Respuesta

29

usted acaba de realizar una .find() implícita o explícitamente:

$('#ParentDiv input'); // implicitly 

$('#ParentDiv').find('input'); // explicitly 

Referencia: .find()

+0

Muchas gracias, muy apreciado . – John

2

Prueba esto:

$('#ParentDiv').find('input'); 
2

Muchas formas de hacerlo. Aquí está uno

$("#ParentDiv > div:eq(1) > input") 
8

que puede probar:

1. $('#ParentDiv input') 
2. $('input', '#ParentDiv') 
3. $('#ParentDiv').find('input') 
2

¿qué tal

$("#ParentDiv :input") 
5

si usted necesita para encontrar la entrada de SubDiv2 sólo de contar con información parentDiv puede utilizar

$("#ParentDiv div:eq(1) input") 

o

$("#ParentDiv div:eq(1)").find("input") 

Donde la ecuación (1) se conseguirá con la segunda div dentro ParentDiv

0

probar esto

jQuery('#input').val(); 
Cuestiones relacionadas