jQuery — это популярная библиотека JavaScript, предназначенная для упрощения работы с DOM, событийной моделью, анимациями и AJAX-запросами. Основное преимущество jQuery заключается в сокращении объема кода и повышении кроссбраузерной совместимости.
Подключение библиотеки может осуществляться как через CDN, так и локально:
<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
Локальное подключение требует загрузки файла
jquery.min.js в проект и ссылки на него:
<script src="js/jquery.min.js"></script>
Для выполнения кода после полной загрузки DOM используется функция:
$(document).ready(function() {
// код здесь
});
Сокращенная запись:
$(function() {
// код здесь
});
Выбор элементов в jQuery осуществляется через функцию
$(), которая поддерживает CSS-селекторы.
$('p').css('color', 'blue');
$('#myId').hide();
$('.myClass').show();
$('div.myClass > p:first').addClass('highlight');
$('li:even').css('background-color', '#f2f2f2');
Чтение и установка атрибутов:
let src = $('#image').attr('src');
$('#image').attr('alt', 'Описание изображения');
Работа с CSS-свойствами:
$('.box').css('width', '200px');
let height = $('.box').css('height');
Добавление и удаление классов:
$('#menu').addClass('active');
$('#menu').removeClass('active');
$('#menu').toggleClass('active');
let text = $('#title').text();
$('#title').text('Новый заголовок');
let htmlContent = $('#content').html();
$('#content').html('<p>Новый абзац</p>');
jQuery предоставляет удобные методы для работы с событиями, включая их делегирование.
Основные события:
$('#button').click(function() {
alert('Кнопка нажата');
});
$('#input').focus(function() {
$(this).css('border-color', 'red');
});
Универсальный метод .on() для привязки
событий:
$('#list').on('mouseenter', 'li', function() {
$(this).addClass('hover');
});
Удаление обработчика:
$('#button').off('click');
jQuery предоставляет методы для создания простых анимаций и визуальных эффектов.
$('#box').hide(); // мгновенно скрыть
$('#box').show(); // мгновенно показать
$('#box').toggle(); // переключить состояние
$('#box').fadeIn(500);
$('#box').fadeOut(500);
$('#box').fadeToggle(500);
$('#box').slideUp(400);
$('#box').slideDown(400);
$('#box').slideToggle(400);
$('#box').animate({width: '300px', opacity: 0.5}, 1000);
jQuery позволяет добавлять, удалять и заменять элементы:
$('#list').append('<li>Новый элемент</li>'); // в конец
$('#list').prepend('<li>Первый элемент</li>'); // в начало
$('#list li:last').remove();
let clone = $('#item').clone();
$('#list').append(clone);
$('#old').replaceWith('<div id="new">Новый элемент</div>');
jQuery упрощает работу с асинхронными запросами через метод
.ajax() и вспомогательные функции .get() и
.post().
Пример GET-запроса:
$.get('data.json', function(response) {
console.log(response);
});
Пример POST-запроса:
$.post('submit.php', {name: 'John', age: 30}, function(response) {
console.log(response);
});
Полная настройка через .ajax():
$.ajax({
url: 'data.json',
method: 'GET',
dataType: 'json',
success: function(data) {
console.log(data);
},
error: function(xhr, status, error) {
console.error(error);
}
});
let value = $('#input').val();
$('#input').val('Новое значение');
let formData = $('#form').serialize();
$('#form').submit(function(event) {
event.preventDefault();
// обработка данных через AJAX
});
jQuery позволяет объединять несколько действий с элементом в одну цепочку:
$('#box')
.css('color', 'red')
.slideUp(500)
.slideDown(500)
.fadeOut(300)
.fadeIn(300);
Цепочки повышают читаемость кода и позволяют экономить переменные.
jQuery предоставляет механизм для хранения пользовательских данных
через метод .data():
$('#item').data('id', 123);
let id = $('#item').data('id');
Данные, сохраненные через .data(), не отображаются в
атрибутах HTML и доступны только через jQuery.
Создание пользовательских плагинов в jQuery осуществляется через
$.fn:
$.fn.highlight = function(color) {
this.css('background-color', color);
return this;
};
$('#box').highlight('yellow');
Это позволяет создавать многоразовые методы и расширять библиотеку без модификации исходного кода.
let $items = $('.item');
$items.css('color', 'blue');
$(document).on('click', '.dynamic-btn', function() {
// обработчик
});
.animate() для
предотвращения “тормозов” интерфейса.При работе с Content Security Policy важно учитывать:
script-src с указанием источника.inline scripts) может быть заблокировано.
Предпочтительно использовать внешние файлы..html() и .append() с
пользовательскими данными могут создавать уязвимости XSS.
Следует избегать вставки непроверенного контента.eval или jav * ascript: URL, чтобы
соответствовать строгим CSP.CSP требует тщательной организации кода: все скрипты должны быть внешними, а динамический контент — безопасно экранирован. Это снижает риск блокировок и повышает безопасность веб-приложений.