2010-08-16 80 views
2

我有一組選項卡,其中隱藏的內容會在點擊該選項卡時顯示。 jQuery的是這樣的:jQuery if語句查找元素ID

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.

這似乎很直接,但我不明白。想法?

回答

4

可以使用.length看到選擇多少個元素髮現這樣做:

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

+1總的來說,我會親自使用這個解決方案,但我會拋棄'=== 1'。 – user113716 2010-08-16 18:19:27

3

如果#TAB2有類。主動然後做 X.

你這意味着:

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

除了解決方案提供離子,你可以這樣做:

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

不一樣快.length,但很容易閱讀和理解。

+0

雖然是比較瘋狂的昂貴:) – 2010-08-16 18:14:40

+0

@Nick - 看我的更新。 – user113716 2010-08-16 18:15:23