2012-01-31 15 views
15

Si supponga che ho il seguente codice HTML -Jquery - Accesso elementi figlio nidificati

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

Per accedere l'elemento di input utilizzando jQuery, sarebbe semplicemente $ ("# input"). Quello che sto cercando di fare è accedervi, presumendo che conosca solo l'ID del div principale.

Attualmente ho

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

Il che non sembra funzionare. C'è un modo più pulito di scrivere questo, o è il modo in cui lo sto facendo ok?

+1

penso '$ ("# ParentDiv"). Find ('ingresso ') 'funziona anche – Murtaza

+0

Fai scorrere la [lista dei selettori jQuery] (http://api.jquery.com/category/selectors/) - vedrai cose come il selettore [' ": eq()" '] (http://api.jquery.com/eq-selector/) che ti permette di fare ciò:' $ ("# ParentDiv> div: eq (1)> input") ' – nnnnnn

risposta

29

si sarebbe solo eseguire un .find() modo implicito o esplicito:

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

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

Riferimento: .find()

+0

Mille grazie, molto apprezzato . – John

2

Prova questo:

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

Molti modi per farlo. Qui è uno

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

si può provare:

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

come su

$("#ParentDiv :input") 
5

se hai bisogno di trovare l'input da SubDiv2 solo su avere informazioni parentDiv è possibile utilizzare

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

o

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

Dove eq (1) ti porterà con la seconda div all'interno ParentDiv

0

provare questo

jQuery('#input').val(); 
Problemi correlati