【问题标题】:Adding class using jQuery in Foreach loop在 Foreach 循环中使用 jQuery 添加类
【发布时间】:2014-07-03 08:09:47
【问题描述】:

我在 foreach 循环中运行 jQuery 脚本以动态添加 html 中的类。我想在不同的事件状态下添加两个不同的类,但它同时添加了类、if 条件中的类和类在else 条件下。

这是我的代码

<?php foreach( $events as $event ){ 
if ($event->status=='new'){ ?>
jQuery( ".upcoming-events" ).addClass( "new_event" );   
<?php } 
else {
?>
jQuery( ".upcoming-events" ).addClass( "old_event" );
<?php } } ?>

但它在upcoming-events div 中添加了两个类。

任何提示???

【问题讨论】:

  • 你需要相对addClass
  • 您可以使用 jquery 的 hasClass 方法来检查类,然后删除并添加新类
  • 你能在这里更新 $events 数组吗
  • 这意味着$events 数组至少有一个新元素和一个旧元素。

标签: php jquery if-statement foreach


【解决方案1】:

检查我的代码以获得答案

<?php foreach( $events as $event ){
if ($event->status=='new'){ ?>
jQuery( ".upcoming-events" ).removeClass( "old_event" );

jQuery( ".upcoming-events" ).addClass( "new_event" );
<?php }
else {
?>
jQuery( ".upcoming-events" ).removeClass( "new_event" );
jQuery( ".upcoming-events" ).addClass( "old_event" );
<?php } } ?>

【讨论】:

    【解决方案2】:

    ".upcoming-events" 选择器选择所有带有即将到来的事件类的元素,因此如果您有任何新事件,您会将 new_event 类添加到所有元素,而不仅仅是当前元素。

    您必须按 id 选择元素,例如。

    【讨论】:

      【解决方案3】:

      您可以使用 Mrinmoy's,但这里更简单,

      <?php 
      foreach( $events as $event ){
      if ($event->status=='new'){ 
      ?>
      jQuery( ".upcoming-events" ).removeClass( "old_event" ).addClass( "new_event" );
      <?php 
      } else { 
      ?>
      jQuery( ".upcoming-events" ).removeClass( "new_event" ).addClass( "old_event" );
      <?php 
      } } 
      ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-28
        • 1970-01-01
        • 2016-07-27
        • 1970-01-01
        • 1970-01-01
        • 2019-05-28
        相关资源
        最近更新 更多