Вставить элемент в тег "на лету" (все на стороне "контент")

Мне нужно на лету изменить "контентную" сторону тега, добавив какой-нибудь текст.

У меня есть (со стороны контента) классические порталы-вкладки:

<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 (более одного элемента с одинаковым идентификатором)

Другие вопросы по тегам