JQuery: удалить 20-й + предмет - PullRequest
1 голос
/ 03 декабря 2009

Я добавляю li к ul каждые несколько секунд. Я хочу установить ограничение в 20 пунктов. После того, как есть 20 предметов, я хочу удалить самый старый, чтобы не было больше 20 предметов. Как я могу сделать это в JQuery?

Ответы [ 3 ]

8 голосов
/ 03 декабря 2009

Вы можете использовать селектор gt , чтобы выбрать все после определенного элемента или lt для чего-либо до. Вам придется использовать атрибут длины массива, если вам нужно выяснить существующую длину.

EG:

$('#ulID li:gt(19)').remove()

Вы также можете использовать: first и: last, если вы никогда не вставляете более 1 элемента одновременно.

2 голосов
/ 03 декабря 2009

Чтобы удалить последнего ребенка, сделайте:

$('li:last-child').remove();

Для удаления 20-го ребенка сделать (0 проиндексировано)

$('li:eq(19)').remove();
0 голосов
/ 03 декабря 2009

После того, как вы добавите, сделайте следующее ...

//Assuming $ul = a jquery object that contains your ul element.
//If there are more than 20 items, remove oldest item
if ($ul.children().size() > 20) {
    $ul.children(":last-child").remove();
}

или, если у вас уже есть элементы li в объекте jquery, вы также можете сделать следующее

if ($li.size() > 20) {
    $li.find(":last-child").remove();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...