我有一个插入HTML的PHP for循环。这是代码:
<div class="half-col full" align="left" data="evts">
<?php
for($i = 0; $i < count($evts); $i++) :
?>
<li class="<?php echo ($i==0)?"selected":"";?>">
<div class="date">
<li class="cell">
<span><?=$evts[$i]["month1"]?></span>
<?=$evts[$i]["day1"]?>
</li>
<li class="divider"></li>
<li class="cell">
<span><?=$evts[$i]["month2"]?></span>
<?=$evts[$i]["day2"]?>
</li>
</div>
</li>
<?php
endfor;
?>
</div>
问题是此循环插入3 <li>s
,但在插入第一个<li>
后,父<div>
已关闭,因此源最终看起来像这样:
<div>
<li> <!--Inserted-->
</div>
<li> <!--Inserted-->
<li> <!--Inserted-->
在插入所有3个<div>
之前,有没有办法阻止父<li>s
关闭?
答案 0 :(得分:3)
<li>
必须位于<ul>
,<ol>
或<menu>
内。见https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li
比较输出源代码和网站的DOM。奇怪的结果应该是由浏览器尝试修复损坏的源代码引起的。
答案 1 :(得分:1)
尝试以下方法:
<div class="half-col full" align="left" data="evts">
<ul>
<?php
for($i = 0; $i < count($evts); $i++) :
?>
<li class="<?php echo ($i==0)?"selected":"";?>">
<div class="date">
<ul>
<li class="cell"> <span>
<?=$evts[$i]["month1"]?>
</span>
<?=$evts[$i]["day1"]?>
</li>
<li class="divider"></li>
<li class="cell"> <span>
<?=$evts[$i]["month2"]?>
</span>
<?=$evts[$i]["day2"]?>
</li>
</ul>
</div>
</li>
<?php
endfor;
?>
</ul>
</div>
答案 2 :(得分:0)
也许你应该将你的第二个div标签放在li标签之外
<div class="half-col full" align="left" data="evts">
<?php
for($i = 0; $i < count($evts); $i++) :
?>
<div class="date">
<li class="<?php echo ($i==0)?"selected":"";?>">
<li class="cell">
<span><?=$evts[$i]["month1"]?></span>
<?=$evts[$i]["day1"]?>
</li>
<li class="divider"></li>
<li class="cell">
<span><?=$evts[$i]["month2"]?></span>
<?=$evts[$i]["day2"]?>
</li>
</li>
</div>
<?php
endfor;
?>
答案 3 :(得分:0)
问题只是由于<li>
之类的html标签管理不当而没有必要的标签。它可能会导致许多问题,首先解决这些问题。循环中没有任何问题,只有html标签。
答案 4 :(得分:-1)
</li>
</div>
</li>
<?php
endfor;`
你的</div>
在循环中。将结束标记移到循环之外,问题就解决了:)``