bigton
@bigton
Web-программист

Как оптимизировать изменение DOM (отложенное изменение)?

Всем привет!

Когда нам нужно что-то добавить на страницу и сделать это оптимально, мы можем сделать так
var data = [1, 2, 3, 4];
var html = '';

$.each(data, function (k, v) {    
    html += '<div id="block_' + k + '">' + v + '</div>';    
});

$(body).append(html);


Как так же оптимально сделать удаление со страницы?
var data = [1, 3];

$.each(data, function (k, v) {    
    $('#block_' + v).remove();        
});


В первом примере у нас получает одна манипуляция с DOM, а во втором уже несколько.

Может быть есть какое то оптимальное решение? Или есть "отложенные изменения", типа сперва делаешь все что нужно, а потом командой push() происходит изменение?

Спасибо.
  • Вопрос задан
  • 2249 просмотров
Пригласить эксперта
Ответы на вопрос 1
AlekseyNemiro
@AlekseyNemiro
full-stack developer
var toRemove = '';

$.each(data, function (k, v) {    
   if(toRemove!='')toRemove+=',';
   toRemove += '#block_' + v;
});

$(toRemove).remove();

Хотя внутри все равно будет примерно то, что было в исходной задаче. (это просто предположение, факты не проверял)

Можно удалять не по id, а по class или каким-нибудь атрибутам. Будет красивее.

$('.removeme').remove();

или

// удалить все div-ы из родителя
$('div', '#родитель').remove();

--------------------------------------------------
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы