在(foreach)循环中向第一个 div 添加一个类

Posted

技术标签:

【中文标题】在(foreach)循环中向第一个 div 添加一个类【英文标题】:Adding a class to first div in (foreach) loop 【发布时间】:2014-01-23 06:31:39 【问题描述】:

我正在使用引导程序附带的轮播。这我将在 WordPress 中使用。我正在使用 foreach 循环查询两个最近的帖子,但是为了让轮播正常工作,我需要最新的帖子才能有一个额外的“活动”类。我在 *** 上找到了一些解决方案,但都是 whileloops,我真的需要它来处理这个 foreach 循环。这是我的代码:

    <div id="NewsCarousel" class="carousel slide">
          <div class="carousel-inner">
            <?php
            $args = array( 'numberposts' => '2', 'category' => 5 );
            $recent_posts = wp_get_recent_posts( $args );
            foreach( $recent_posts as $recent )
                echo '<div class="item"><a href="' . get_permalink($recent["ID"]) . '" title="Look '.esc_attr($recent["post_title"]).'" >' . get_the_post_thumbnail($recent["ID"], array(200,200)) .$recent["post_title"].'</a> </div> ';
           
          ?>
          </div>
       </div>

【问题讨论】:

循环类型无关紧要,添加一个计数器,第一次迭代添加类 ... 或使用 $recent_posts 数组键,如果它们保证从零开始 【参考方案1】:

您可以使用boolean 变量来确定它是否是第一个循环。初始值为true,一旦循环,值设置为false

<div id="NewsCarousel" class="carousel slide">
  <div class="carousel-inner">
    <?php
    $args = array( 'numberposts' => '2', 'category' => 5 );
    $recent_posts = wp_get_recent_posts( $args );
    $isFirst = true;
    foreach( $recent_posts as $recent )
        echo '<div class="item' . $isFirst ? ' active' : '' . '"><a href="' . get_permalink($recent["ID"]) . '" title="Look '.esc_attr($recent["post_title"]).'" >' . get_the_post_thumbnail($recent["ID"], array(200,200)) .$recent["post_title"].'</a> </div> ';
        $isFirst = false;
   
  ?>
  </div>
</div>

【讨论】:

不起作用,我得到 x 次主动回显这个词,没有课程,什么都没有。 将条件移到 echo 之上,将结果从条件分配给变量,然后在 echo 中使用该变量【参考方案2】:

您可以在 foreach 循环之外添加一个像 $count = 0; 这样的计数器。然后在 foreach 循环中告诉它像这样递增$count++;

然后检查计数是否等于 1,如下所示:if($count == 1)//do this

所以在你的情况下,让我们这样做:

<div id="NewsCarousel" class="carousel slide">
<div class="carousel-inner">
<?php
$args = array( 'numberposts' => '2', 'category' => 5 );
$recent_posts = wp_get_recent_posts( $args );
$count = 0;
foreach( $recent_posts as $recent )
$count++;
    echo '<div class="item'; if($count == 1)echo ' active';"><a href="' . get_permalink($recent["ID"]) . '" title="Look '.esc_attr($recent["post_title"]).'" >' . get_the_post_thumbnail($recent["ID"], array(200,200)) .$recent["post_title"].'</a> </div> ';

?>
</div>
</div>

试试吧,它应该可以解决问题。我刚刚在我目前正在处理的项目中使用了这种方法。

【讨论】:

以上是关于在(foreach)循环中向第一个 div 添加一个类的主要内容,如果未能解决你的问题,请参考以下文章

向 div 添加事件监听器适用于 ForEach() 方法,但不适用于 for 循环。有啥不同?

在Android应用程序中向GridView添加一组按钮

在 ios 6 中向第二个动态单元格添加单独的标识符?

如何在foreach循环中向数组添加新索引?

用jQuery怎样控制点击按钮之后在<input>标签后面只添加一个子标签?在线等解答!

熊猫:Groupby,循环并添加一小时迭代与组内的条件