从数组中设置两个类

时间:2010-06-07 09:08:22

标签: php wordpress

我想在查询的每个第三个输出上更改类:

    <?php
$style_classes = array('box','box','box no_right_margin');
$style_index = 0;
?>

我在div上设置了这个:

<div <?php $k = $style_index%4; echo "class=$style_classes[$k]"; $style_index++; ?>>

在第三个div上我希望这个类看起来像这样:

<div class="box no_right_margin">

现在看起来像:

 <div class="box" no_right_margin>

2 个答案:

答案 0 :(得分:0)

您需要将类名括在引号中。您的脚本实际上正在输出class=box no_right_margin。 (我认为您作为当前输出提供的示例不是脚本发送的内容,而是来自Firebug的DOM视图,它显示浏览器只显示列表中的第一个类)

所以你可以这样做:

<div class="<?php $k = $style_index%4; echo $style_classes[$k]; $style_index++; ?>">

甚至

<div class="<?php echo $style_classes[$style_index++ % 4]; ?>">

答案 1 :(得分:0)

你应该使用%3而不是%4,所以你实际得到索引0,1和2 您需要在HTML输出中使用正确的引号:

<?php   echo '<div class="' . $style_classes[$k++ % 3] . '">';   ?>

否则你的浏览器(Safari?)可能会用“在错误的地方更正它”,如你的例子中所示。顺便说一句,使用连字符作为CSS类名,而不是下划线(与ID不同)的风格更好。