Применить код если не содержит заданный родитель

Тема в разделе "JavaScript", создана пользователем Menro, 19 июн 2018.

  1. Menro

    Menro web, seo, email, hack

    Регистр.:
    27 янв 2008
    Сообщения:
    660
    Симпатии:
    126
    Всем привет!
    Есть вот такой кусочек кода:

    Код:
    jQuery('.category_description img, .product-description img').each(function () {
        jQuery(this).wrap(jQuery('<a/>', {
            href: $(this).attr('src'),
            class: "fancybox",
        }));
       
        jQuery('.category_description .fancybox, .product-description .fancybox').attr('data-fancybox', '');
    Ищем все картинки в category_description и product-description, обрамляем их ссылкой с классом fancybox, затем ищем ссылки с классом fancybox и добавляет атрибут data-fancybox.

    Теперь собственно вопрос:

    Как мне отключить выполнение данного кода для тех картинок, которые уже имеют ссылку, то есть уже обрамлены в <a>?
    Спасибо за помощь!

    Пробовал получать родителя картинки с помощью Parent(), но потом не понимаю как проверить содержимое parent, мол если parent == 'a' то пусто, иначе выполняем код.
     
  2. boffin

    boffin Писатель

    Регистр.:
    30 сен 2012
    Сообщения:
    3
    Симпатии:
    4
    Код:
    jQuery('.category_description img, .product-description img').each(function () {
    if($( this ).parent().get( 0 ).tagName != 'a')
    {    jQuery(this).wrap(jQuery('<a/>', {
            href: $(this).attr('src'),
            class: "fancybox",
        }));
    jQuery('.category_description .fancybox, .product-description .fancybox').attr('data-fancybox', '');
    }
    }));
      
     
    Последнее редактирование: 19 июн 2018
    Menro нравится это.
  3. Menro

    Menro web, seo, email, hack

    Регистр.:
    27 янв 2008
    Сообщения:
    660
    Симпатии:
    126
    Чуть иначе, но суть ясна, большое спасибо!

    Код:
    jQuery(document).ready(function($){
       
    jQuery('.category_description img, .product-description img').each(function () {
       
    if(jQuery( this ).parent().get( 0 ).tagName != 'A')
    {    jQuery(this).wrap(jQuery('<a/>', {
            href: $(this).attr('src'),
            class: "fancybox",
        }));
    jQuery('.category_description .fancybox, .product-description .fancybox').attr('data-fancybox', '');
    }
    
       
    });