Задать вопрос

Как добавить класс к ссылке содержащей картинку?

Использую Fancybox и добавляю класс large и rel="group" для ссылок с картинками после загрузки страницы.
$(".text a").addClass("large").attr('rel', 'group');

Проблема в том, что если в тексте встречаются ссылки без картинок(на сторонний ресурс), им тоже добавляется класс и атрибут rel, в связи с чем переход по ссылке не работает.

Как добавить нужный мне класс и атрибут только к ссылкам, содержащим картинку?
  • Вопрос задан
  • 2718 просмотров
Подписаться 4 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 1
Например, с помощью filter:
$('a').filter(function( index ) {
    return $("img", this).length === 1;
})

Пример.

Второй вариант: с помощью has:
$('a').has('img')
Пример.

Второй вариант более производительный.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
IonDen
@IonDen
JavaScript developer. IonDen.com
1. Зачем это делать на яваскрипте? Это не рационально.
2. Если все таки почему то надо, то вам помогут регулярные выражения и функция test:
a) получаем значение href у ссылки
б) выполняем функцию test
в) регулярное выражение должно содержать проверку на .jpg, .jpeg, .png, .gif

Чтобы научиться составлять регулярные выражения, прочитайте для начала эту статью
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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