@ishimskayamahorka14

Как сделать, чтобы скрипт возвращал null, если не найдет объект?

Как сделать, чтобы скрипт возвращал null, если не найдет элемент с классом .show-text, либо .seo-text?
jQuery(document).ready(function($) {
document.querySelector('.show-text').addEventListener('click', () => {
    document.querySelector('.seo-text').classList.toggle('hide-before');
});
});
  • Вопрос задан
  • 144 просмотра
Решения вопроса 2
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
const showText = document.querySelector('.show-text')
if (showText === null) {
    return null
}

const seoText = document.querySelector('.seo-text')
if (seoText === null) {
    return null
}

showText.addEventListener('click', () => { // ....
Ответ написан
Комментировать
Fragster
@Fragster
помогло? отметь решением!
Не надо смешивать jq и нативный js. С использованием jq можно все заменить на
$(document).on('click', '.show-text', function() {
  $('.seo-text').toggleClass('hide-before');
});

Если хочется оставить "смесь", то нужно проверить на null
let showLink = document.querySelector('.show-text');
if (showLink)
showLink.addEventListener('click', () => {
    let text = document.querySelector('.seo-text');
    if (text)
        text.classList.toggle('hide-before');
});


Или сделать с использованием NodeList:
document.querySelectorAll('.show-text').forEach(node => {
  node.addEventListener('click', () => {
    document.querySelectorAll('.seo-text').forEach(node => {
        node.classList.toggle('hide-before');
    });
});
});


Все фрагменты кода не проверялись, так что могут содержать мелкие неточности.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы