Модифікація DOM в jQuery
Добавляння елементів та HTML
$(куди_добавляємо).fun(що_добавляємо);
$('p').before(s); - вставляє HTML-код чи елемент перед кожним вибраним елементом.
$('p').after(s); - вставляє HTML-код чи елемент після кожного вибраного елемента.
$('p').prepend(s); - вставляє HTML-код чи елемент всередину кожного вибраного елемента на початок.
$('p').append(s); - вставляє HTML-код чи елемент всередину кожного вибраного елемента в кінець.
let $strong = $('strong:first');
let img = document.createElement('img');
img.setAttribute('src', 'https://68.media.tumblr.com/avatar_5295b088c685_128.png');
$('p').before('<hr>');
$('p').after(img);
$('h2').prepend('<span class="danger">!!! >>> </span>');
$('h2').append($strong);
Добавляння елементів та HTML до цільового елемента.
$(що_добавляємо).fun(куди_добавляємо);
$(e).insertBefore(target); - добавляє перед елементом.
$(e).insertAfter(target); - добавляє після елемента.
$(e).prependTo(target); - добавляє всередину на початок елемента.
$(e).appendTo(target); - добавляє всередину в кінець елемента.
let tgt = $('h2');
let $strong = $('strong:first');
let img = document.createElement('img');
img.setAttribute('src', 'https://68.media.tumblr.com/avatar_5295b088c685_128.png');
$('<hr>').insertBefore(tgt);
$(img).insertAfter(tgt);
$('<span class="danger">!!! >>> </span>').prependTo(tgt);
$($strong).appendTo('h2');
Створення та видалення елементів
$('<p class="hey">hello</p>') - створює елемент(и) у пам'ять.
$(e).clone(); - клонує елементи у пам'ять.
$('#userpic').clone().prependTo('.comment');
$('button.calc').clone(true);
$('menu').clone(true, true);
$('ul').empty(); - видаляє всі дочірні елементи (очищає вибрані елементи).
$('li').remove(); - видаляє вибрані елементи.
$('li').detach(); - видаляє вибрані елементи.
$('section').eq(0).empty();
$('section').eq(1).html('');
$('section').get(2).innerHTML = ''
$('h2').eq(0).remove();
let $li = $('ol li').each(function(i){
$(this).prepend('[' + i + '] ');
}).filter(':even').detach();
window.onclick = function(){
$('ol').eq(0).prepend($li);
}
Всі три метода повертають видалені елементи, отже, їх можна зберегти у змінну і використати згодом.
Методи remove і detach можуть приймати аргумент - селектор, для фільтрації елементів, що будуть видалені.
Обгортки
$(e).wrap(html); - робить обгортку довкола кожного з вибраних елементів.
$(e).wrapAll(html); - робить одну спільну обгортку для всіх вибраних елементів.
$(e).wrapInner(html); - робить обгортку для контента кожного вибраного елемента (огортає всередині).
$(e).unwrap(); - видаляє обгортку (безпосереднього батька).
$('h2').wrap('<div class="h2-wrap"></div>');
$('.h2-wrap').css('border', '1px solid blue');
$('h2').wrapInner('<span class="danger"></span>');
$('li').wrapAll('ul');
$('h1').unwrap('.resize');
Метод unwrap може приймати селектор, якщо батьківський елемент не відфільтрується ним, то обгортка не видалиться.