2015-05-26 71 views
0

我想使我的菜單動態。點擊功能顯示下一個元素

我有這樣的HTML輸出:

<dl> 
    <dt class="odd">one</dt> 
    <dd class="odd"> ...</dd> 

    <dt class="even">two</dt> 
    <dd class="even"> ...</dd> 

    <dt class="odd">three</dt> 
    <dd class="odd">... </dd> 

    <dt class="even">four</dt> 
    <dd class="even">... </dd> 

    <dt class="odd">five</dt> 
    <dd class="odd">... </dd> 

    <dt class="even">six</dt> 
    <dd class="even">...</dd> 
</dl> 

我已經設置了dddisplay: none,因爲他們的過濾器。標題爲dt

我試圖讓這個我點擊一個dt則必須在下一個dd元素改爲display: block;

我一直在尋找一些的jQuery或JavaScript的方法來做到這一點,但我不能找到任何。

有什麼想法?

+1

如果你在谷歌搜索顯示或隱藏一個元素使用jQuery你有很多的例子 – Mivaweb

+0

我知道如何使jQuery(.even).show()/ hide(); 問題是讓所有的動態和更改元素的情況下,你點擊 – ntzz

回答

2

如果您希望能夠切換(顯示/隱藏)dt是你可以使用.toggle - 函數的jQuery:

$(document).ready(function(){ 

    $('dt').on('click', function(){ 
     $(this).next('dd').toggle(); 
    }); 

}); 

$(this) - 對象引用被單擊的元素。 .next()將選擇與選擇器匹配的下一個元素,在這種情況下是下一個dd

爲了確保你的事件監聽器結合到現有的元素,你可能要包裝你的代碼與.ready()章24 -listener

Demo

+0

非常感謝!我會去學習如何使用它到其他網站。 非常有用! – ntzz

9

您可以使用next()這將

獲取緊隨其後的每個元素的兄弟在匹配的元素。

$('dt').click(function(){ 
    $(this).next('dd').show(); 
    }); 

DEMO

+0

只有代碼沒有說明? – Mivaweb

+0

@Mivaweb,剛剛添加了演示,現在要添加說明 – AmmarCSE

+0

不錯的一個,它的正確感謝,但它更有用的代碼經驗,但謝謝! – ntzz