2016-12-16 124 views
-1

所以,我使用的是在菜單中生成「li's」的foreach。目前只有兩個「李」。當你點擊一個按鈕時,這個菜單變得更加簡單,我想在這種情況發生時減小字體大小。Jquery each toggleClass

我試過在每個()函數內使用toggleClass()函數來做到這一點,但只有第一個「李」切換類,第二個重寫相同。

foreach ($results as $result){ 
         $local = $result['local']; 
        echo "<li><a class='clsPostData1' data-local='".$result['local']."' data-salaid='".$result['salaid']."' data-salakey='".$result['salakey']."'href='#'><span id='idfontsala'>".$local."</span></a></li>"; 
        } 

我在跨度內使用「idfontsala」ID。

<script> 

     $(document).ready(function(){ 
    $('.sidebar-toggle').click(function(){ 
    $('#idfontsala').each(function(){ 
     $(this).toggleClass('classfontsala'); 
    }); 
    }); 
}); 

    </script> 

這是正在發生的事情:https://i.imgsafe.org/34d4f934b5.png

+0

我注意到你正在爲你的$ .each方法使用一個id。通過練習html id是唯一的,這意味着這可能是你的問題。我們可以看到你的標記嗎? –

+0

沒關係,我找到了你的ID。嘗試使用類而不是ID。 –

+4

你不需要使用'.each()'。你可以使用'$('selector')。toggleClass('classname')',它會切換所有的。但正如@PeterClark所說,你需要使用一個類而不是一個ID來匹配多個元素。 – Barmar

回答

0

如果你想影響的所有產生的項目。使用一個類來匹配多個元素。替換爲您的標記:

<span class='fontsala'> 

而且你的腳本:

$('.fontsala').each(function(){ 
    $(this).toggleClass('classfontsala'); 
}); 

UPDATE:

這是,如果你仍然想使用$。每。但正如@Barmar所說,它可以縮短。

$('.fontsala').toggleClass('classfontsala');