将类添加到foreach循环的最后一行

时间:2010-01-31 16:26:30

标签: php

全部,

此代码可以通过CSS完美地打印每个列表项底部的所有5个结果。

然而,最后一项ID就像没有边框一样。如何在最后一次迭代中向列表项添加一个类?

<?php list($parent) = split('/', $this->url); ?>
<?php  $last_articles = $this->find('/news')->children(array('limit'=>5, 'order'=>'page.created_on DESC')); ?>
<ul id="latest-news">
<?php foreach ($last_articles as $article): ?>
<li>
<?php echo '<h3>'.$article->link($article->title()).'</h3>'; ?>
<?php echo strip_tags(substr($article->content(),0,100)).'...'; ?>
</li>
<?php endforeach; ?>
</ul>

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

<?php list($parent) = split('/', $this->url); ?>
<?php  $last_articles = $this->find('/news')->children(array('limit'=>5, 'order'=>'page.created_on DESC')); ?>
<ul id="latest-news">
<?php $count = count($last_articles); $num = 0; ?>
<?php foreach ($last_articles as $article): ?>
<li <?php if($num == $count-1){ ?> class="last-item" <?php } ?>>
<?php echo '<h3>'.$article->link($article->title()).'</h3>'; ?>
<?php echo strip_tags(substr($article->content(),0,100)).'...'; ?>
</li>
<?php $num++ ?>
<?php endforeach; ?>
</ul>

BTW,这会将“last-item”类添加到最后处理的项目中。

是的,您应该重新构建代码,使其具有可读性。

答案 1 :(得分:0)

您可以使用:last-child CSS修饰符:

ul.latest-news:last-child { border-bottom: none; }

但是它还没有得到广泛的支持,所以添加一个明确的.last类可能是最好的。