2012-01-31 105 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();