Безопасная манипуляция с DOM
Возник такой вопрос. Есть такая вот функция:
function create_avatar_div (generate_random_number) { var div = '', avatar_style_container = this.generate_random_position(generate_random_number), container_super = [] for (var i = 0; i < generate_random_number; i++) { div = $(document.createElement('div')).addClass('avatar') .css({ 'width':avatar_style_container.random_width[i], 'opacity':avatar_style_container.random_opacity[i], 'height':avatar_style_container.random_height[i], 'top': avatar_style_container.random_top[i] }) .attr({ 'data-coordinate-end-animation':avatar_style_container.random_left[i], 'data-coordinate-start-animation':300 }) console.log(div) container_super[i] = div } } Если сделать console.log(container_super) то выведется весь массив элементов. Вопрос вот в чем, как можно весь этот массив сразу вставить в div чтобы вместо большого количества манипуляций с DOM сделать это все в один присест? |
Пример: Cтрока 4
container_super = document.createDocumentFragment(); Пример: Cтрока 18
container_super.appendChild(div); |
Вот какое решение я нашел:
Создаем фейковый блок var fake_element = $('<div class="fake_element"></div>') после этого все новые созданные элементы добавляем в этот элемент for (var i = 0; i < generate_random_number; i++) { pizda.append($(document.createElement('div')).addClass('avatar') .css({ 'width':avatar_style_container.random_width[i], 'opacity':avatar_style_container.random_opacity[i], 'height':avatar_style_container.random_height[i], 'top': avatar_style_container.random_top[i] }) .attr({ 'data-coordinate-end-animation':avatar_style_container.random_left[i], 'data-coordinate-start-animation':300 })) console.log(pizda) } DOM не задет, так как fake_element не в DOM после того как вышли из цыкла можна наш элемент вставить в любой узел $('.user-avatar-icon-container').append(fake_element) |
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 23:10. |