2015-04-06 6 views
0

у меня есть это в HTML:Удалить атрибут, если другой такой же

<a class="clickImage" href="http://domain.com/a_0_full.jpg" data-lightbox="group">initialize</a> 
<a class="imageZoom" href="http://domain.com/a_0_full.jpg"></a> 
<a class="imageZoom" href="http://domain.com/a_1_full.jpg"></a> 

Я хочу дать другую data-lightbox (noGroup) для a.imageZoom с таким же href как a.clickImage и та же data-lightbox (группа) с различными href.

это то, что я пробовал:

$(document).ready(function() { 
    $(".clickImage").click(function() { 
     var addressValue = $(this).attr("href"); 
     $(".imageZoom").attr('data-lightbox','group'); 
     if($('.imageZoom').attr('href') == addressValue) { 
      $(this).attr('data-lightbox','noGroup'); 
     } 
    }); 
}); 

от того, что я понимаю, это дает noGroup ко всем ссылкам с a.imageZoom.

Что я делаю неправильно?

ответ

1

Вам необходимо использовать .filter() для фильтрации элемента, который имеет тот же самый href, что и в переменной addressValue. а затем установить атрибут data-lightbox, как no-Group им:

$('.imageZoom').filter(function(){ 
    return $(this).attr('href') == addressValue; 
}).attr('data-lightbox','noGroup'); 
0

Может быть так:

$(".clickImage").click(function() { 
 
     var addressValue = $(this).attr("href"); 
 
     $(".imageZoom").attr('data-lightbox', function(i) { 
 
     return (addressValue == $(this).attr('href')) ? "noGroup" : "group"; 
 
     }); 
 
     return false; 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a class="clickImage" href="http://domain.com/a_0_full.jpg" data-lightbox="group">initialize</a> 
 
<a class="imageZoom" href="http://domain.com/a_0_full.jpg">one</a><!--applies noGroup to this.--> 
 
<a class="imageZoom" href="http://domain.com/a_1_full.jpg">two</a>

Смежные вопросы