我试图从数据库中获取数据并将其列在<li>
列表中。我试图找出每个第三个列表项并给它一个不同的李类?这是我的代码
<?php
while ($row = mysql_fetch_array($getupdates)){
?>
<li id="update" class="group">
blah blah blah
</li>
<?php } ?>
所以基本上每三个项目我想给它一个不同的li类
<li id="update" class="group third">
答案 0 :(得分:8)
在你的while循环中有一个计数器。我们称之为$i
。在你的循环中,添加:
$i++;
if ($i % 3 == 0) {
//do something you'd do for the third item
}
else { //default behavior }
答案 1 :(得分:2)
使用CSS3伪类属性选择器可以更轻松地完成此操作。像这样:
li:nth-child(3) {
font-weight: bold;
}
如果您担心IE支持CSS3属性,可以使用http://selectivizr.com/
之类的polyfill轻松添加支持答案 2 :(得分:1)
使用计数器,然后检查计数器的模3是否为0,以确定它是否为第三行。
<?php
$rowCount = 0;
while ($row = mysql_fetch_array($getupdates))
{
$useDiffClass = (($rowCount++ % 3) == 0);
?>
<li id="update" class="group <?=($useDiffClass ? "third" : "");?>">
blah blah blah
<li>
<?
}
?>
答案 3 :(得分:0)
<?php
$i = 0;
while (($row = mysql_fetch_array($getupdates)) !== false){
echo '<li id="update" class="group';
if ($i++ % 3 == 2) echo ' third';
echo '">blah blah blah</li>';
}
答案 4 :(得分:0)
Modulus operator是要走的路。
但是你也可以使用CSS3属性来实现相同的效果而不使用PHP。