JQuery: выбрать все ссылки, кроме этой - PullRequest
9 голосов
/ 20 февраля 2012

У меня есть неупорядоченный список с пятью элементами списка, каждый со ссылкой внутри него:

<ul>
    <li><a href="#">Link 1</a></li>
    <li><a href="#">Link 2</a></li>
    <li><a href="#">Link 3</a></li>
    <li><a href="#">Link 4</a></li>
    <li><a href="#">Link 5</a></li>
</ul>

Используя jQuery, всякий раз, когда я нажимаю на любую из этих ссылок, я хочу выбрать все другие и затем что-то с ними сделать (применить класс и т. Д.).

Как мне это сделать?

Ответы [ 3 ]

26 голосов
/ 20 февраля 2012

Используйте метод not для удаления элемента из объекта jQuery:

$(function(){

  $('ul li a').click(function(){
    $('ul li a').not(this).addClass('other');
  });

});
10 голосов
/ 20 февраля 2012

Внутри обратного вызова клика:

var others = $(this).closest('ul').find('a').not(this);
2 голосов
/ 20 февраля 2012

Вы можете выбрать все ссылки, а затем использовать .not(this), чтобы выполнить то, что вы хотите, например:

 $("a").click( function(){ 
    $("a").not(this).css("color","red");
 });
...