jQuery оператор if для поиска идентификатора элемента - PullRequest
2 голосов
/ 16 августа 2010

У меня есть группа вкладок со скрытым содержимым, которые отображаются при нажатии на вкладку.JQuery выглядит следующим образом:

jQuery(document).ready(function($){
 var sections = $('.section').hide();

 $('.tablink').click(function(e){
        e.preventDefault();
        sections.hide();
        $($(this).attr('href')).show();
        $(this).closest('ul').find('li').removeClass('active');
        $(this).closest('li').addClass('active');
 });

 var tab = getParameterByName('tab');
 if(tab)
    $('.tablink:eq('+(tab-1)+')').click();
 else
     $('#section1').show();  //show first section
});

HTML выглядит следующим образом:

  <li id="tab1" class="active"><a class="tablink" href="#section1">Link1</a></li>
  <li id="tab2"><a class="tablink" href="#section2">Link2</a></li>
  <li id="tab3"><a class="tablink" href="#section3">Link3</a></li>

Я пытаюсь выяснить, как добавить дополнительную функцию к нажатию вкладки, которая говорит:

, если у # tab2 есть класс .active, тогда сделайте X.

Это кажется очень прямым, но я не могу получить это.Идеи?

Ответы [ 3 ]

4 голосов
/ 16 августа 2010

Вы можете сделать это, используя .length, чтобы увидеть, сколько элементов селектор нашел следующим образом:

if($('#tab2.active').length === 1) {
  //do something, it has the class
}
3 голосов
/ 16 августа 2010

если у # tab2 есть класс .active, тогда делайте X.

Вы имеете в виду это:

if ($('#tab2').hasClass('active')){
  // your code..
}
1 голос
/ 16 августа 2010

В дополнение к предоставленным решениям вы можете сделать следующее:

if ($('#tab2').is('.active')){
  // it was .active
}

Не так быстро, как .length, но легко читается и понимается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...