jQuery предоставляет удобные методы для работы со свойствами HTML-элементов, позволяя эффективно получать, изменять и управлять как атрибутами, так и стилями элементов на странице. Основные инструменты для этого включают работу с атрибутами, свойствами, CSS, а также значениями форм.
Атрибуты (attributes) — это характеристики
HTML-тегов, определяющие их поведение или внешний вид. В jQuery для
работы с атрибутами используются методы .attr() и
.removeAttr().
Получение атрибута:
var src = $('img').attr('src');
Здесь метод .attr('src') возвращает значение атрибута
src первого найденного элемента
<img>.
Установка атрибута:
$('a').attr('href', 'https://example.com');
Этот код изменяет атрибут href всех ссылок на
странице.
Удаление атрибута:
$('input[type="text"]').removeAttr('disabled');
Метод .removeAttr() удаляет указанный атрибут у
выбранных элементов.
Важно понимать различие между атрибутами и свойствами элементов. Атрибуты задаются в HTML, а свойства управляют текущим состоянием DOM-элемента.
Свойства (properties) — это характеристики объектов
DOM, которые отражают текущее состояние элемента. Например,
checked у чекбокса или selected у опции
<select>.
Получение свойства:
var isChecked = $('#checkbox').prop('checked');
Метод .prop() безопасно возвращает актуальное состояние
свойства DOM, а не исходное значение из HTML.
Установка свойства:
$('#checkbox').prop('checked', true);
Этот вызов отметит флажок на странице.
Удаление свойства Некоторые свойства можно сбросить, например:
$('#checkbox').prop('checked', false);
Метод .prop() является предпочтительным для работы с
состояниями элементов форм и другими DOM-свойствами, так как
.attr() возвращает только исходное значение атрибута.
jQuery упрощает управление стилями элементов через методы
.css(), .addClass(),
.removeClass() и .toggleClass().
Получение значения CSS:
var color = $('p').css('color');
Метод .css('color') возвращает вычисленное значение
цвета текста первого элемента <p>.
Установка одного свойства:
$('p').css('font-size', '18px');
Установка нескольких свойств:
$('p').css({
'color': 'red',
'background-color': 'yellow',
'margin': '10px'
});
Использование объекта позволяет задавать сразу несколько CSS-свойств, что повышает читаемость кода.
Классы CSS:
.addClass('className') — добавляет класс к
элементам..removeClass('className') — удаляет класс..toggleClass('className') — переключает класс:
добавляет, если нет, удаляет, если есть.Применение классов предпочтительнее прямого изменения CSS, так как поддерживает семантику и структуру стилей.
Метод .val() предназначен для получения и установки
значений элементов форм: <input>,
<textarea>, <select>.
Получение значения:
var inputValue = $('#username').val();
Установка значения:
$('#username').val('admin');
Множественный выбор в select:
$('#fruits').val(['apple', 'orange']);
Метод автоматически отмечает указанные опции как выбранные.
Особенности работы с чекбоксами и радиокнопками: Для
проверки состояния лучше использовать .prop('checked'), так
как .val() возвращает только значение атрибута
value.
jQuery позволяет динамически изменять структуру элементов:
$('img').attr({
'src': 'new_image.png',
'alt': 'Новое изображение'
});
Можно передавать объект с ключами-значениями, что удобно при множественных изменениях сразу.
Изменение свойств форм динамически:
$('#submit').prop('disabled', false);
$('#newsletter').prop('checked', true);
Таким образом можно управлять интерактивностью интерфейса без прямой модификации HTML.
.attr() и
.prop().attr() работает с атрибутами HTML,
возвращает то, что задано в исходном документе..prop() работает с свойствами DOM,
возвращает текущее состояние элементов.Пример различия:
<input type="checkbox" id="check1" checked>
$('#check1').attr('checked'); // "checked" (атрибут HTML)
$('#check1').prop('checked'); // true/false (текущее состояние)
Использование .prop() рекомендуется для чекбоксов,
радиокнопок и других элементов формы, где важен текущий статус.
jQuery предоставляет методы .width(),
.height(), .innerWidth(),
.innerHeight(), .outerWidth(),
.outerHeight() для работы с размерами:
.width() / .height() — только
содержимое..innerWidth() / .innerHeight() — включает
padding..outerWidth() / .outerHeight() — включает
padding и border. Можно добавить true, чтобы включить
margin.Пример:
var divWidth = $('#box').outerWidth(true);
$('#box').height(200);
Эти методы удобны для динамического позиционирования и анимации элементов на странице.
Методы jQuery для работы со свойствами элементов обеспечивают мощные возможности управления DOM. Разделение на атрибуты, свойства, CSS и значения форм позволяет писать чистый, логичный и легко поддерживаемый код. Правильное использование этих инструментов критически важно для интерактивных и динамически изменяемых веб-страниц.