您知道从智能变量中删除第一个<ul>
和最后一个</ul >
的最佳方法是什么吗?
我目前有一个变量,它输出一个菜单标签:{$menu}
和一个子菜单,但如果不从子菜单输出中删除<ul>
标签,我就不会删除第一个和最后一个无序列表标签。
期待它!
您可以编写一个修饰符(并用register_modifier
附加它),它可以剥离第一个和最后一个ul标记。要实现这一点,您可以使用regex。
function smarty_strip_ul($text) {
return preg_replace('~(.*?)<ul[^>]*>(.*)</ul>~s', '$1$2', $text);
}
和
$smarty->register_modifier('strip_ul', 'smarty_strip_ul');
以及在tpl 中
{$menu|strip_ul}
这不是很容易解决的。。。
我们将一个唯一的id,div/span元素放在您的列表中,并使用带document.ready()函数的JQuery'ies替换字符串来更改它。
JQuery还可以帮助您将容器的内容转换为dom对象,然后使用:first和:last选择器访问要删除的元素,并使用.remove()函数。
否则,你必须在smarty核心中重写它,这是不明智的,除非你知道自己在做什么,并且不想失去在没有冲突或重建功能的情况下轻松更新smarty的可能性。