2012-01-31 21 views
15

Przyjmijmy, mam następujące HTML -jQuery - Dostęp zagnieżdżone elementy podrzędne

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

Aby uzyskać dostęp do elementu wejściowego przy użyciu jQuery, byłoby po prostu $ ("# Wejście"). Próbuję to zrobić, zakładając, że znam tylko identyfikator div najwyższego poziomu.

Obecnie mam

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

które nie wydają się działać. Czy istnieje czystszy sposób pisania tego, czy też sposób, w jaki robię to dobrze?

+1

myślę '$ ("# ParentDiv"). Find ('wejście ') 'działa również – Murtaza

+0

Przeglądnij listę [lista selektorów jQuery] (http://api.jquery.com/category/selectors/) - zobaczysz rzeczy takie jak selektor [' ": eq()" '] (http://api.jquery.com/eq-selector/), który pozwala to zrobić:' $ ("# ParentDiv> div: eq (1)> input") ' – nnnnnn

Odpowiedz

29

byłoby po prostu wykonać .find() jawnie lub niejawnie:

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

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

referencyjny: .find()

+0

Wielkie dzięki, bardzo doceniane . – John

2

Spróbuj tego:

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

wiele sposobów, aby to zrobić. Oto jeden

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

Można spróbować:

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

jak o

$("#ParentDiv :input") 
5

jeśli trzeba znaleźć wejście od SubDiv2 tylko od posiadania informacji parentDiv można użyć

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

lub

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

Gdzie eq (1) będzie Ci z drugim div wewnątrz ParentDiv

Powiązane problemy