2013-11-15 30 views
1

我有一個html代碼兩個div - 一個是按鈕,第二個是矩形。該矩形是隱藏的,我想顯示它,當按鈕被點擊。問題是,我有許多這些按鈕和矩形。每個人都有類:獲取類名中的數字 - jquery

<div class="navid-1">Sonething</div> 

和那些矩形

<div class="topicid-1">long text</div> 

現在我需要一些功能,將選擇具有類navid- *的東西,得到這個數字,並顯示topicid- [即號]。我不知道該怎麼做。 此外,隱藏當前可見的矩形將會很好。 (像交換他們)。 謝謝。

回答

3

,而不是設置這樣的課程,你可以設置自定義數據屬性,像

<div class="topicid-1" data-topic="1">long text</div> 

,或者你可以調用函數的參數

<div class="topicid-1" onclick="showTopic(1)">long text</div> 
1

目標與屬性的所有按鈕開始與選擇,然後從類名的最後一個字符的切片,確保你沒有多類等,並用它來尋找相關的矩形:

$('[class^="navid-"]').on('click', function() { 
    $('.topicid-'+this.className.slice(-1)).show(); 
}); 

隱藏可見矩形,針對所有的人:

$('[class^="topicid-"]').hide() 

,並把您顯示當前一個之前:

$('[class^="navid-"]').on('click', function() { 
    $('[class^="topicid-"]').hide() 
    $('.topicid-'+this.className.slice(-1)).show(); 
}); 
4

你可以使用正則表達式來獲取數在class屬性的末尾。類似這樣的:

$('[class^=navid-]').on('click', function() { 
    var num = $(this).attr('class').match(/\d+$/)[0]; 
    $('.topicid-'+num).show(); 
});