2012-01-31 148 views
15

假設我有以下的HTML -jQuery的 - 訪問嵌套子元素

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

要使用jQuery訪問輸入元素,這將是簡單的$( 「#輸入」)。我想要做的就是訪問它,假設我只知道頂級div的ID。

目前我有

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

這似乎工作。有沒有更清晰的寫作方式,還是我做得好的方式?

+1

我想'$( 「#ParentDiv」)。找到('輸入')'也可以工作 – Murtaza 2012-01-31 11:55:04

+0

瀏覽[jQuery選擇器列表](http://api.jquery.com/category/selectors/) - 你會看到像['「:eq()」選擇器'](http://api.jquery.com/eq-selector/)它可以讓你這樣做:'$(「#ParentDiv> div:eq(1)> input」)' – nnnnnn 2012-01-31 12:00:32

回答

29

你只執行.find()或明或暗地:

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

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

參考:.find()

+0

非常感謝,非常感謝。 – John 2012-01-31 12:34:58

2

試試這個:

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

許多方法來做到這一點。這裏是一個

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

你可以試試:

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

怎麼樣

$("#ParentDiv :input") 
5

,如果你只需要在有parentDiv信息,以找到SubDiv2輸入您可以使用

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

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

其中EQ(1),那麼你可以有第二個DIV中ParentDiv

0

試試這個

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