Web Мастерская»Блог

Сообщество Web Мастеров. Тут собрано всё, чтобы написать свой первый сайт, запустить его в Интернет и поддерживать его в течении всей его работы.

Cannot read properties of undefined (reading 'trim')

Ошибка TypeError: Cannot read properties of undefined (reading 'trim') возникает, когда вы пытаетесь вызвать метод или прочитать свойство у переменной, которой присвоено значение undefined или null.

Обычно такая ошибка встречается в JavaScript, когда программа ожидает объект или строку, но по факту переменная не была инициализирована или стала неопределённой.

Наиболее частые причины появления этой ошибки



Обращение к свойствам объекта, который не определен
Например, вы вызвали метод .trim() на строке, но строка оказалась равна undefined:
let myVar = undefined;
console.log(myVar.trim()); // Uncaught TypeError: Cannot read properties of undefined (reading 'trim')

Несуществующие элементы DOM
Если вы пытаетесь манипулировать элементом, который не существует в документе:
const element = document.querySelector('.nonexistent-class');
console.log(element.textContent.trim()); // Uncaught TypeError: Cannot read properties of null (reading 'trim')

Поддержка устар...

jQuery: Оптимизация производительности

Зачем заботиться о производительности? Скорость загрузки и реакции страницы напрямую влияет на удобство пользования сайтом и конверсии. Именно поэтому оптимизация — важная составляющая качественного продукта.

Кеширование селекторов


  • Описание: Многократные поиски элементов в DOM снижают производительность и как избежать этого с помощью кеширования.
  • Решение: Показать, как сохранять выборки в переменную и повторно использовать их, снижая число обращений к DOM.

// Плохой пример (медленно)
for(let i = 0; i < 100; i++) {
    $("#myDiv").addClass("active");
}

// Хороший пример (быстро)
let myDiv = $("#myDiv");
for(let i = 0; i < 100; i++) {
    myDiv.addClass("active");
}

Делегирование событий


  • Описание: Влияние множественного подключения обработчиков событий и как уменьшить накладные расходы с помощью делегирования.
  • Решение: Пояснить концепцию делегирования событий и привести примеры эффективного использования.

// Плохой пример (каждый item слушает
...

jQuery: Продвинутые техники манипуляции DOM

jQuery — это библиотека JavaScript, облегчающая работу с Document Object Model (DOM). Она помогает изменять структуру страницы, стилизовать элементы и создавать динамичный пользовательский интерфейс. В этой статье мы рассмотрим полезные техники и примеры для продвинутой работы с DOM.

Управление DOM-структурой



Создание и добавление элементов
Иногда нужно динамически добавлять элементы на страницу. Сделать это легко с помощью jQuery:
// Создать новый div и добавить его в конец body
$('<div>Новый элемент!</div>').appendTo('body');

// Добавить элемент в начало списка ul
$('<li>Новый пункт списка</li>').prependTo('ul');

// Вставить элемент после другого элемента
$('<button>Нажмите меня</button>').insertAfter('#targetButton');

Копирование и перемещение элементов
Часто требуется переместить или скопировать элементы на странице. Вот как это делается:
// Копируем элемент и помещаем копию в конец страницы
$('#myDiv').clone().appendTo('body');

//
...

jQuery: Использование псевдоклассов CSS

Иногда при написании скриптов на jQuery хочется отобрать первые, последние или промежуточные элементы с помощью удобных выражений вроде :first, :last, :even, :odd. Однако эти псевдоклассы ведут себя особым образом и могут приводить к неожиданностям, если не соблюдать осторожность.

Какие бывают псевдоклассы?


jQuery предоставляет ряд специальных фильтров для выбора конкретных элементов из набора:
  • :first — выбирает первый элемент из набора.
  • :last — выбирает последний элемент из набора.
  • :even — выбирает элементы с чётными индексами (начиная с нуля).
  • :odd — выбирает элементы с нечётными индексами.
  • :eq(N) — выбирает элемент с номером N (также начинается с нуля).
  • :gt(N) — выбирает элементы с номерами большими, чем N.
  • :lt(N) — выбирает элементы с номерами меньшими, чем N.

Когда использовать псевдоклассы?


Псевдоклассы удобно использовать в двух ситуациях:

Непосредственно в селекторе jQuery
Это самый простой и быстрый способ выбора элементов. Просто напиши псевдокласс рядом с основным селектором, и...

CSS: Как отменить float: left / right;

CSS
Чтобы отменить свойство float: left / right; в CSS, можно использовать несколько способов.

Использовать float: none;


Самый простой способ — это явно указать float: none; для элемента, чтобы отменить его плавающее положение:
.element {
    float: none;
}

Использовать clear: both;


Свойство clear позволяет отменить влияние плавающих элементов. Если вы хотите, чтобы следующий элемент не обтекал плавающий элемент, используйте clear: both;:
.element {
    clear: both;
}

Использовать overflow: hidden; или overflow: auto;


Если вы хотите отменить плавание для родительского элемента, можно использовать overflow: hidden; или overflow: auto;. Это заставит родительский элемент обрезать плавающие элементы и не позволять им выходить за его пределы:
.parent-element {
    overflow: hidden;
}

Использовать display: block; или display: inline-block;


Если вы хотите отменить плавание и вернуть элемент к нормальному потоку документа, можно использовать display: block; ил...