我试图添加html列表(ul)的新元素,结果我得到无效的html文件
public function createChild()
{
$args=func_get_args();
$child = $this->dom->createElement($args[1]);
$result=$args[0]->appendChild($child);
return $result;
}
如何使用
$p=$tpl->createChild($div,'p');
$list=$tpl->createChild($div,'ul');
$tpl->createChild($list,'li');
结果<div class="Menu" id="Base">
<p></p>
<ul><li></ul>
</div>
如果我想在其他地方加上li,也不要加上结束标签
li HTML标签通常需要一个值。
您可以尝试为li使用另一个addChild,并将值作为参数。
if ($args[2] != '') {
$child = $this -> dom -> createElement($args[1], $args[2]);
]
的第二部分<li></li>
是省略。对于空值使用空格:'&bsp;'。这可能是你的页面上的一些HTML错误的结果。
结果应该是:
<div class="Menu" id="Base">
<p></p>
<ul><li>&bsp;</li></ul>
</div>
$tpl -> createChild($list, 'li', '&bsp;');
对整个页面进行HTML验证
您使用过验证器吗?
取决于文档类型。这是不是无效的 HTML5至少,似乎li
s不需要关闭
http://www.w3.org/TR/html5/grouping-content.html the-li-element
Tag omission in text/html:
An li element's end tag ***may be omitted*** if the li element is immediately followed by
another li element or if there is no more content in the parent element.