jQuery скрыть все дочерние элементы каждого Div, кроме первого

У меня есть этот макет:

<div class="list">
    <ul></ul>
    <ul></ul>
</div>
<div class="list">
    <ul></ul>
    <ul></ul>
    <ul></ul>
    <ul></ul>
</div>
<div class="list">
    <ul></ul>
    <ul></ul>
</div>

Я пытаюсь показать только первый ul каждого div с помощью jQuery. Я знаю, что это возможно, но при использовании $('div.list ul:gt(1)').each(function(){$(this).hide()}); он показывает содержимое первого div и скрывает все остальное.


person user989990    schedule 11.10.2011    source источник


Ответы (1)


Скрипт: http://jsfiddle.net/y9bEG/3/

Использовать это:

$("div.list").each(function(){
    $("ul:not(:first)", this).hide();
});

Он выбирает каждый элемент div с классом list и скрывает все элементы <ul>, которые не являются первым элементом.

person Rob W    schedule 11.10.2011
comment
$("div.list ul:not(:first-child)").hide() должно работать (вместо :first). - person Felix Kling; 11.10.2011
comment
Очень мило, очень мило... теперь поясню, почему исходный запрос не работает... может быть, gt(1) работает с полным списком запрошенных uls? - person jvenema; 11.10.2011