Вставить элемент в тег "на лету" (все на стороне "контент")
Мне нужно на лету изменить "контентную" сторону тега, добавив какой-нибудь текст.
У меня есть (со стороны контента) классические порталы-вкладки:
<ul class="nav" id="portal-globalnav">
....
<li id="portaltab-events" class="plain">
<a href="http://localhost:8080/test3/events" title="Eventi del sito">Eventi</a>
</li>
</ul>
Мне нужно добавить (через diazo) содержимое другого тега (#numbers), чтобы получить что-то вроде:
<ul class="nav" id="portal-globalnav">
....
<li id="portaltab-events" class="plain">
<a href="http://localhost:8080/test3/events" title="Eventi del sito">Eventi</a>
<div id="#numbers">33</div>
</li>
</ul>
Как решить эту проблему? Спасибо
2 ответа
Решение
Замена контента, содержащая немного XSL, должна это сделать.
<replace css:content="#portaltab-events a">
<xsl:copy-of select="." />
<xsl:copy-of select="//*[@id='numbers']" />
<xsl:apply-templates />
</replace>
Если вы отдельно удалите div #numbers, вам нужно добавить mode="raw" в apply-templates, чтобы предотвратить его удаление здесь.
Вы можете посмотреть, поможет ли это: http://docs.diazo.org/en/latest/recipes/modifying-text/index.html
Кроме того, откуда берется div #numbers? Если вы добавите его к каждому тегу LI, у вас будет недопустимый HTML (более одного элемента с одинаковым идентификатором)