2013-03-22 4 views
1

Есть ли способ добавитьClass к нескольким ссылкам? У меня есть два разных div, содержащих один и тот же набор ссылок; нажатие на ссылку должно применить тот же класс к «эквивалентной» ссылке в наборе другого div.jquery addClass для нескольких ссылок

<style> 
.one{margin:70px 0} 
.one a{ margin:10px; padding:5px 10px; background-color:green; text-decoration: none; color:white} 
.selected{background-color: yellow;} 
</style> 
<div class="one"> 
<a href="#first">1</a><a href="#second">2</a><a href="#third">3</a> 
</div> 

<div class="two"> 
<a href="#first">1</a><a href="#second">2</a><a href="#third">3</a> 
</div> 
<script> 
$("a.one").click(function() { 
    $(this).addClass(".selected").filter(':first').click(); 
}); 
</script> 
+1

, пожалуйста, объясните немного больше? что вы хотите, конечный результат должен быть? –

+0

У меня есть 10 ссылок внутри первого div и 10 внутри второго div. если я нажму первую ссылку из div one. класс должен применяться к этой ссылке, а тот же класс времени применяется к второй ссылке первого первого. я надеюсь, что вопрос будет устранен. –

ответ

0

LINK

Прежде всего, необходимо найти индекс якоря .Застет применить класс во втором сНе якоря на основе этого индекса.

$('.two').children('a').eq($('.one a').index(this)).addClass('selected'); 

$('.one').children('a').eq($('.two a').index(this)).addClass('selected'); 
+0

@ Salman Razak Memon проверяет этот ответ один раз – PSR

+0

$ (". One a"). Click (function() { \t $ ('. Two'). Children ('a'). Eq ($ ('. One') .index (this)). addClass ('selected'); \t $ ('. one'). children ('a'). eq ($ ('. two'). index (this)). addClass ('selected'); }); –

+0

применение цвета во второй div 3-я ссылка. его не применяют к первым или вторым ссылкам –

0

Я бы попытался представить что-то общее со всеми ссылками, которые должны измениться вместе. В этом я ввел класс, чтобы идентифицировать их:

<style> 
.one{margin:70px 0} 
.one a{ margin:10px; padding:5px 10px; background-color:green; text-decoration: none; color:white} 
.selected{background-color: yellow;} 
</style> 
<div class="one"> 
<a href="#first" class="1">1</a><a href="#second" class="2">2</a><a href="#third" class="3">3</a> 
</div> 

<div class="two"> 
<a href="#first" class="1">1</a><a href="#second" class="2">2</a><a href="#third" class="3">3</a> 
</div> 
<script> 
    $(document).ready(function() { 
     $("a.1").click(function() { 
      $("a.1").addClass("selected"); 
      $("a:not(.1)").removeClass("selected"); 
     }); 
     $("a.2").click(function() { 
      $("a.2").addClass("selected"); 
      $("a:not(.2)").removeClass("selected"); 
     }); 
     $("a.3").click(function() { 
      $("a.3").addClass("selected"); 
      $("a:not(.3)").removeClass("selected"); 
     }); 
    }); 
    </script> 

Примечание: если браузер ориентируется не поддерживает CSS3 вы не можете рассчитывать на: не селектор, и я должен использовать некоторые «старый стиль» методы для удаления класс.

+0

Я использую firefox ver 19.0.2 –

+0

, поэтому у вас есть поддержка: not selector :-) Проблема может быть со старым браузером; в этом случае вы можете написать что-то вроде $ («a.2, a.3»). removeClass («selected»); чтобы избежать: не селектор –

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