remove по индексам
Собстно есть массив индексов элементов к примеру
options.elems_indexes = [0,2,4] далее
for (var i=0; i<options.elems_indexes.length; i++) {
$('.ui-message').eq(options.elems_indexes[i]).remove();
}
Проблема в том что при удалении первого элемента у следующего элемента в DOM индекс уменьшается на кол-во удаленных элементов. Соответственно в первом проходе массив индексов уже должен быть [1,3]. При втором [0]. Как можно обойти данную граблю? |
попробуйте так, возможно это решит Вашу проблему.
for (var i=0; i<options.elems_indexes.length; i++) {
$('.ui-message').eq(options.elems_indexes[i] - i).remove();
}
|
$('.ui-message').filter(function(i) {
return options.elems_indexes.indexOf(i) != -1;
}).remove();
|
Ну и мой велосипед, что бы до кучи было))
var dat=$('.ui-message').toArray();
for (var i=0; i<options.elems_indexes.length; i++) {
$(dat[options.elems_indexes[i]]).remove();
//dat[options.elems_indexes[i]].remove();//или может так, чо то непомню :)
}
|
Всем спасибо. Все работавает.
Выбрал код walik как более элегантный ) DjDiablo $(dat[options.elems_indexes[i]]).remove();;) |
| Часовой пояс GMT +3, время: 19:29. |