2012-01-31 27 views
15

Giả sử tôi có HTML sau -Jquery - Truy cập vào lồng yếu tố con

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

Để truy cập vào các yếu tố đầu vào sử dụng jquery, nó sẽ chỉ đơn giản là $ ("# input"). Những gì tôi đang cố gắng làm là truy cập nó, giả sử tôi chỉ biết ID của div cấp cao nhất.

Hiện nay tôi có

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

Mà dường như để làm việc. Có một cách viết sạch hơn này, hay là cách tôi đang làm nó ok?

+1

tôi nghĩ rằng '$ ("# ParentDiv"). Find ('đầu vào ') 'cũng hoạt động – Murtaza

+0

Có một trình duyệt thông qua [danh sách các bộ chọn jQuery] (http://api.jquery.com/category/selectors/) - bạn sẽ thấy những thứ như bộ chọn [' ": eq()" '] (http://api.jquery.com/eq-selector/) cho phép bạn làm điều này:' $ ("# ParentDiv> div: eq (1)> input") ' – nnnnnn

Trả lời

29

Bạn chỉ có thể thực hiện một .find() ngầm hay rõ ràng:

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

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

tham khảo: .find()

+0

Rất cám ơn, được đánh giá cao . – John

2

Hãy thử điều này:

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

Nhiều cách để làm điều đó. Dưới đây là một

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

Bạn có thể thử:

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

thế nào về

$("#ParentDiv :input") 
5

nếu bạn cần phải tìm đầu vào từ SubDiv2 chỉ khi có thông tin parentDiv bạn có thể sử dụng

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

hoặc

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

đâu eq (1) sẽ giúp bạn với div thứ hai bên trong ParentDiv

0

thử này

jQuery('#input').val(); 
Các vấn đề liên quan