【发布时间】:2012-07-19 13:46:15
【问题描述】:
我有一个带有子菜单的 html ul 菜单。我想用 PHP 在子菜单的第一项中添加一个“first-item”类。
<ul id="menu-main" class="menu">
<li id="menu-item-68" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-68"><a href="...">ITEM1</a></li>
<li id="menu-item-69" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-69"><a href="...">ITEM2</a>
<ul class="sub-menu">
<li id="menu-item-70" class="first-item menu-item menu-item-type-post_type menu-item-object-page menu-item-70"><a href="...">SUB-ITEM-1</a></li>
<li id="menu-item-71" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71"><a href="...">SUB-ITEM2</a></li>
</ul>
<li id="menu-item-73" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-73"><a href="...">ITEM3</a></li>
</ul>
(在文本中查找“第一项”)
到目前为止,我遇到了类似的情况:
$output = preg_replace('/(sub-menu.*class.*)menu-item/smi', '$1 first-item menu-item', $output, 1);
【问题讨论】:
-
您为什么要尝试使用 PHP 来执行此操作? PHP 构建 HTML。这种事情通常是用 JavaScript 完成的。
-
simplehtmldom.sourceforge.net ??检查第二个示例 - 如何修改 HTML Dom 元素 - 或者 - 只使用 javascript?
-
@JezenThomas:HTML 不一定是输出的,即使是,可访问性仍然是一个有效的问题。 Joudicek:使用 HTML 解析器和序列化器,例如
DOMDocument.