jQuery if用于查找元素ID的语句

时间:2010-08-16 18:06:17

标签: jquery if-statement

我有一组标签,其中包含单击标签时显示的隐藏内容。 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 个答案:

答案 0 :(得分:4)

您可以使用.length来查看选择器找到的元素数量如下:

if($('#tab2.active').length === 1) {
  //do something, it has the class
}

答案 1 :(得分:3)

  

如果#tab2具有.active类,那么就行   X

你的意思是:

if ($('#tab2').hasClass('active')){
  // your code..
}

答案 2 :(得分:1)

除了提供的解决方案,您还可以这样做:

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

不如.length快,但易于阅读和理解。