Сборник методов jQuery для управления элементами DOM.
Проверить элементы на наличие, заполненность можно с помощью следующих способов:
Проверка наличия элемента:
Пустой или нет:
if ($('.element').is(':empty')) {
alert('.element пуст');
}
if ('.element:not(:empty)') {
alert('.element не пустой');
}
Проверка элементов до и после
Комбинацией методов prev()
, next()
и is()
можно узнать о предыдущем и последующим элемент в общем родителе.
Перед элементом:
if ($('.element').prev().is('div')) {
alert('Перед .element есть div');
}
if ($('.element').prev().is(':empty')) {
alert('Перед .element есть пустой элемент');
}
После элемента:
Вставить перед элементом:
$('ul').before('<p>Новый параграф</p>');
/* или */
$('<p>Новый параграф</p>').insertBefore('ul');
Вставить после элемента:
Пример работы before и after:
Далее, селектором :eq(n)
можно добавить контент у порядкового элемента.
Добавить до n-го элемента:
Добавить после n-го элемента:
Добавить в начало элемента:
Добавить в конец элемента:
Пример работы prepend и append:
Обернуть элемент снаружи
wrap()
– оборачивает каждый выбранный элемент в указанную обертку.
Пример работы wrap:
Ещё один пример оборачивает все изображения ссылками:
Обернуть несколько элементов одним
$('p').wrapAll('<div class="new"></div>');
/* или */
$('p').wrapAll('<div class="new" />');
/* Так-же можно указать список элементов */
$('.class1, .class2, .class3').wrapAll('<div class="new" />');
Пример работы wrapAll:
Обернуть содержимое элемента
Пример работы wrapInner:
Методы replaceWith()
или replaceAll()
заменяют элемент другим элементом, включая его содержимое.
Если нужно заменить тег, но оставить его содержимое:
$('.element').replaceWith('<p>' + $('.element').html() + '</p>');
/* или */
$('<p>' + $('.element').html() + '</p>').replaceAll('.element');
Если нужно сохранить все атрибуты старого тега и содержимое:
$('#element').replaceWith(function(){
$new = $('<p>', {html: $(this).html()});
$.each(this.attributes, function(i, attribute){
$new.attr(attribute.name, attribute.value);
});
return $new;
});
.clone(withDataAndEvents, deepWithDataAndEvents)
– создает копию элемента, если в параметре withDataAndEvents
указать true, то так-же скопируются все данные и обработчики элемента. Параметр deepWithDataAndEvents
отвечает за копирование обработчиков у дочерних элементов, по умолчанию равен withDataAndEvents
.
Пример работы clone:
Метод remove()
удаляет элемент полностью, включая повешенные на него события и освобождает память.
Удалить элемент с содержимым:
Метод detach()
как бы скрывает элемент, поэтому если повторно добавить этот элемент в DOM, он сохранит все события и свойства.
Пример работы remove:
Удалить содержимое
Метод empty()
удаляет всё содержимое элемента, включая дочерние элементы и их обработчики событий.
Пример работы empty:
Удалить родительский элемент
unwrap()
удаляет родительские элементы из набора, оставляя их содержимое на своих местах.