在foreach循环中切换类

时间:2017-01-05 18:35:51

标签: javascript jquery loops toggle

我有一个按钮可以切换一个类来隐藏和显示单击按钮时。

我的问题是切换仅适用于一个特定元素。它不适用于多个班级/或ID。我有一个循环浏览博客的@foreach循环,点击后,我需要隐藏div,但所有这些foreach循环都生成相同的ID。

这就是我现在所拥有的:

 <button class="btn btn-primary">Preview</button> <br />


@foreach($blog as $b)
  <div class="col-md-12" class="toggleButtonsFeatured">
    some text here....
  </div>
@endforeach


 <script>
        $( "button" ).click(function() {
            $(".toggleButtonsFeatured").toggleClass(); 
        });
 </script>   

如何立即切换所有动态生成的div?

2 个答案:

答案 0 :(得分:2)

将“id”更改为类并按类切换。 Jquery无法更改具有相同ID的多个元素。您永远不应该在具有相同ID的页面上拥有多个元素。

<button class="btn btn-primary">Preview</button> <br />


@foreach($blog as $b)
  <div class="col-md-12 toggleButtonsFeatured">
    some text here....
  </div>
@endforeach


<script>
    $( "button" ).click(function() {
        $(".toggleButtonsFeatured").toggle(); 
    });
</script>   

还可以尝试将jquery代码放入文档就绪函数中。

答案 1 :(得分:0)

如果这些是动态生成的,您可能需要先将其包装在静态元素中,然后将click侦听器附加到该元素。

<button class="btn btn-primary">Preview</button> <br />

<div id="wrapper">
@foreach($blog as $b)
  <div class="col-md-12 toggleButtonsFeatured">
    some text here....
  </div>
@endforeach
</div>


<script>
    $("#wrapper").on("click", ".toggleButtonsFeatured", function() {
        $(".toggleButtonsFeatured").toggle(); 
    });
</script>