2012-07-13 3 views
16

Это должно быть легко, но я не в состоянии это сделать.Как найти первый прямой дочерний элемент div

У меня есть DIV элемент с идентификатором «LeftScrollableDiv», и я пытаюсь найти первый дочерний элемент под ним:

$("#LeftScrollableDiv:first-child"); 

<div id="LeftScrollableDiv:first"> 
    <table></table> 
</div> 

Но результат нулевой. Любая помощь??

+5

'$ ('# LeftScrollableDiv') дети() первый()' – techfoobar

+0

HTTP:..//api.jquery.com/ - ваш друг ... – Christoph

ответ

41
$('#LeftScrollableDiv').children().first(); 

API

+0

@christoph спасибо за форматирование;) – rsplak

4

В :first-child проверяет его предмет является первым потомком своего родителя. В этом случае вы пытаетесь выбрать элемент с id #LeftScrollableDiv, который является первым дочерним элементом его родителя. Все селекторы : просто фильтруют предыдущий выбор, они не выбирают никаких новых элементов.

К сожалению, нет никакого способа .firstChild в jQuery, поэтому вы всегда должны сначала выбрать всех детей, а затем вынуть первый.

Возможный селектор, чтобы сделать это:

"#LeftScrollableDiv > :first" 

Which is far more efficient than > :first-child.

1

Следующая не работает для меня:

$('#LeftScrollableDiv').children().first(); 

Если вы найдете то же самое, то вы можете рассматривать метод объекта, возвращенного детей() как массив.

Чтобы получить первый элемент:

$('#LeftScrollableDiv').children()[0] 

Чтобы получить последний элемент:

$('#LeftScrollableDiv').children()[$('#LeftScrollableDiv').children().length-1] 
Смежные вопросы