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

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

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

Как добавить нужный мне класс и атрибут только к ссылкам, содержащим картинку?
  • Вопрос задан
  • 2718 просмотров
Решения вопроса 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

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

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

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