Инспектирование элементов

Bliss.js — это компактная и высокоэффективная библиотека для работы с DOM в JavaScript, которая облегчает операции с элементами, их свойствами, атрибутами и событиями. Инспектирование элементов — одна из ключевых возможностей, позволяющая детально анализировать структуру страницы, получать информацию о состоянии элементов и управлять ими динамически.

Выбор элементов

Bliss.js предоставляет несколько удобных методов для получения элементов из DOM:

  • bliss.$(selector, [context]) — возвращает первый элемент, соответствующий CSS-селектору.
  • bliss.$$(selector, [context]) — возвращает массив всех элементов, соответствующих селектору.

Примеры:

var button = bliss.$('button.submit'); // первый элемент button с классом submit
var items = bliss.$$('.list-item');    // все элементы с классом list-item

Параметр context позволяет ограничить область поиска конкретным узлом:

var sectionItems = bliss.$$('.list-item', bliss.$('section#main'));

Работа с атрибутами и свойствами

Bliss.js упрощает доступ к атрибутам элементов с помощью метода attr:

var link = bliss.$('a.external');
var href = link.attr('href');        // получение значения атрибута
link.attr('target', '_blank');       // установка нового значения
link.attr({ rel: 'noopener', title: 'Ссылка' }); // установка нескольких атрибутов одновременно

Для работы с классами используется метод hasClass, addClass, removeClass и toggleClass:

var box = bliss.$('.box');
box.addClass('highlight');
if (box.hasClass('highlight')) {
    box.removeClass('highlight');
}
box.toggleClass('active');

Свойства DOM-элементов также доступны напрямую через Bliss.js. Например, для получения текста элемента используется text():

var message = bliss.$('.message');
var content = message.text();        // получение текста
message.text('Новый текст');         // установка текста

Для работы с HTML-контентом используется метод html():

var container = bliss.$('.container');
container.html('<p>Новый HTML контент</p>');

Навигация по DOM

Bliss.js предоставляет удобные методы для перемещения по дереву DOM:

  • parent() — возвращает родительский элемент.
  • children([selector]) — возвращает дочерние элементы, опционально фильтруемые по селектору.
  • next() и prev() — возвращают соседние элементы.
  • closest(selector) — возвращает ближайший предок, соответствующий селектору.

Примеры:

var item = bliss.$('.item.active');
var parentList = item.parent();
var siblings = item.parent().children('.item');
var nextItem = item.next();
var prevItem = item.prev();
var closestSection = item.closest('section');

Работа с атрибутами данных

Для удобного хранения пользовательских данных Bliss.js использует метод data():

var card = bliss.$('.card');
card.data('id', 42);                 // установка значения
var cardId = card.data('id');        // получение значения
card.data({ type: 'info', visible: true }); // установка нескольких данных сразу

Метод data() автоматически управляет кешем данных и предотвращает прямую модификацию DOM-атрибутов data-*, обеспечивая производительность.

События и инспекция состояния

Bliss.js облегчает привязку событий с помощью метода on:

var button = bliss.$('button.submit');
button.on('click', function(event) {
    console.log('Кнопка нажата', event.target);
});

Для инспектирования текущего состояния элемента можно использовать комбинацию методов is() и hasClass():

var tab = bliss.$('.tab.active');
if (tab.is(':visible') && tab.hasClass('active')) {
    console.log('Активная вкладка видима');
}

Метод is() поддерживает большинство CSS-селекторов и псевдоклассов, что позволяет создавать сложные условия для анализа состояния элементов.

Обход коллекций элементов

Bliss.js позволяет выполнять операции над коллекциями элементов с помощью метода each:

bliss.$$('.list-item').each(function(el, index) {
    console.log(index, el.textContent);
});

Метод map используется для создания новых массивов на основе коллекции элементов:

var texts = bliss.$$('.list-item').map(function(el) {
    return el.textContent;
});

Инспектирование атрибутов стиля и размеров

Bliss.js предоставляет удобный доступ к стилям элементов через метод css():

var box = bliss.$('.box');
var width = box.css('width');       // получение значения
box.css('background-color', 'red'); // установка нового стиля
box.css({ color: 'white', margin: '10px' }); // установка нескольких стилей одновременно

Для получения реальных размеров элемента используются свойства offsetWidth, offsetHeight и getBoundingClientRect() через обёртку Bliss.js:

var rect = box[0].getBoundingClientRect();
console.log(rect.width, rect.height, rect.top, rect.left);

Заключение по инспектированию

Инспектирование элементов в Bliss.js сочетает простоту API и гибкость работы с DOM. Методы выбора, навигации, анализа состояния, работы с атрибутами и данными позволяют создавать динамичные интерфейсы, оптимизировать манипуляции с элементами и облегчить дебаг. Умелое использование этих инструментов обеспечивает точный контроль над структурой страницы и её поведением.