Подтвердить что ты не робот

Удаление дочерних элементов с учетом индекса?

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

<div id='parent'>

    <div id='row_0'></div>

    <div id='row_1'></div>

    <div id='row_2'></div>

    ... 

    <div id='row_N'></div>
</div>

В какой-то момент я хочу удалить все "строки" div над определенным индексом, например:

for (var index = 1; index < $('#parent').children.length; index++) {
    $('#parent').remove('#row_' + index);
}

Есть ли более простой способ сделать это в jquery? Что-то вроде "просто удалите всех детей, начиная с индекса N"?

(выше для цикла не будет работать, но это то, что я сделал бы, если другого пути не было)

4b9b3361

Ответ 1

"Просто удалите (отсоединить) всех детей #parent, начиная с элемента N":

$("#parent").children().slice(N).detach();

Если элементы не будут повторно вставлены, используйте remove() вместо detach(), чтобы отбросить данные и события, связанные с удаленными элементами.

Ответ 2

Чтобы удалить строки 0 и 1, выберите строки меньше 2, используя lt selector, а затем remove:

$('#parent div:lt(2)').remove();

Ответ 3

Это старый поток, но мне любопытно, почему никто не упоминал nth-child.

$("#parent > div:nth-child(n + " + index + ")").remove();

* Обновление: у меня не хватило репутации, чтобы знать его в то время, но был ответ nth-child, удаленный.