每个LI foreach的替代课程

时间:2012-01-19 12:06:55

标签: php css class html-lists

我正在尝试为每个LI foreach提供一个替代课程。

<li class="odd">
text
</li>
<li class="even">
text
</li>
<li class="odd">
text
</li>
<li class="even">
text
</li>

这是我的代码:

<ul>
 <?php foreach ($this->item->extra_fields as $key=>$extraField): ?>
 <?php if($extraField->value): ?>
  <li class="<?php echo ($key%2) ? "odd" : "even"; ?> type<?php echo ucfirst($extraField->type); ?> group<?php echo $extraField->group; ?>">
Text here
  </li>
 <?php endif; ?>
 <?php endforeach; ?>
</ul>

请任何人帮忙...... 感谢

3 个答案:

答案 0 :(得分:4)

尝试:

<?php $count = 0; // need to set first value
<?php foreach ($this->item->extra_fields as $key=>$extraField): ?>
   <?php if($extraField->value): ?>
      <li class="<?php echo (++$count % 2) ? "odd" : "even"; ?> type <?php echo ucfirst($extraField->type); ?> group<?php echo $extraField->group; ?>">
         Text here
      </li>
   <?php endif; ?>
<?php endforeach; ?>

Link to pre/post increment docs if needed

答案 1 :(得分:2)

我会这样做..它是关键独立的,你最好看看李级的样子。

<ul>
 <?php 
    foreach ($this->item->extra_fields as $key=>$extraField) {
       if($extraField->value) {
          $toggle = ($toggle=="odd"?"even":"odd");
          echo '<li class="',$toggle,' type',ucfirst($extraField->type),' group', $extraField->group,'">';
          echo 'Text here';
          echo '</li>';
       }
   } 
  ?>
</ul>

答案 2 :(得分:1)

jQuery可以很容易地做到这一点,如果这是一个选项。它是:odd:even选择器应该只是你正在寻找的东西而不会有太多的麻烦。