Вложить в первый и последний li списка ul элемент span

#
Вложить в первый и последний li списка ul элемент span
Можно ли не прибегая jQuery ссылки <a> первого и последнего <li> завернуть в <span> средствами xls и еще добавить разные классы этим span-ам код ниже

<ul>
   <li>
      <span class="left">
         <a href=""><a>
      </span>
   </li>
   <li>
      <a href=""></a>
   </li>
   <li>
      <a href=""></a>
   </li>
   <li>
      <span class="right">
         <a href=""><a>
      </span>
   </li>
</ul>
Я только HTML верстку знаю, вот теперь приходится осваивать CMS
#
Re: Вложить в первый и последний li списка ul элемент span
можно, нужно использовать choose и поверять если это первый или последний элемент то выводить
<span>
          <a href=""><a>
</span>
если иначе, то просто
<a href=""></a>
+ опять же использовать проверку внутри span, если это последний элемент, то добавить атрибут class right, если это первый то добавить атрибут class left, если иначе то ничего не добавлять
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
#
Re: Вложить в первый и последний li списка ul элемент span
alexpimnev не могли бы показать наглядно с примером кода может другим пример тоже пригодится
Я только HTML верстку знаю, вот теперь приходится осваивать CMS
#
Re: Вложить в первый и последний li списка ul элемент span
<xsl:choose>
   <xsl:when test="position() = 1 or position() = last()">
             <span>
                 <xsl:choose>
                <xsl:when test="position() = 1">
                         <xsl:attribute name="class">left</xsl:attribute>
                     </xsl:when>
                     <xsl:when test="position() = last()">
                         <xsl:attribute name="class">right</xsl:attribute>
                     </xsl:when>
                <xsl:otherwise></xsl:otherwise>
                 </xsl:choose>
                 <a href=""></a>
             </span>
        </xsl:when>
   <xsl:otherwise><a href=""></a></xsl:otherwise>
</xsl:choose>
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
#
Re: Вложить в первый и последний li списка ul элемент span
Спасиба alexpimnev
Я только HTML верстку знаю, вот теперь приходится осваивать CMS
#
Re: Вложить в первый и последний li списка ul элемент span
Небольшой трабл как вставить ссылку ?


<xsl:choose>
   <xsl:when test="position() = 1 or position() = last()">
             <span>
                 <xsl:choose>
                <xsl:when test="position() = 1">
                         <xsl:attribute name="class">left</xsl:attribute>
                     </xsl:when>
                     <xsl:when test="position() = last()">
                         <xsl:attribute name="class">right</xsl:attribute>
                     </xsl:when>
                <xsl:otherwise></xsl:otherwise>
                 </xsl:choose>
                 <a href="" class="rr"></a>
             </span>
        </xsl:when>
   <xsl:otherwise><a class="ee" href=""></a></xsl:otherwise>
</xsl:choose>


вот этот кусок кода генерит сссылку, чтобы получить нормальные ссылки с заполненным атрибутом href (пометил классами ee и rr) если заменить и ссылку ee и rr на

<a href="{$link}" title="{name}" hostcms:id="{@id}" hostcms:field="name" hostcms:entity="structure"><xsl:value-of disable-output-escaping="yes" select="name"/></a>

парсер выдает ошибку, вообщем как сделать чтобы ссылки которые по краям завернутые в span и просто лежат в li были не с пустым href
вот привожу пример верхнего меню что я не так делаю

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   xmlns:hostcms="http://www.hostcms.ru/"
   exclude-result-prefixes="hostcms">
   <xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="utf-8" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>

   <xsl:template match="/site">
      <ul class="top_menu">
         <!-- Выбираем узлы структуры первого уровня -->
         <xsl:apply-templates select="structure[show=1]" />
      </ul>
   </xsl:template>

   <!-- Запишем в константу ID структуры, данные для которой будут выводиться пользователю -->
   <xsl:variable name="current_structure_id" select="/site/current_structure_id"/>

   <xsl:template match="structure">
      <li>
         <!--
            Выделяем текущую страницу добавлением к li класса current,
            если это текущая страница, либо у нее есть ребенок с атрибутом id, равным текущей группе.
         -->
         <xsl:if test="$current_structure_id = @id or count(.//structure[@id=$current_structure_id]) = 1">
            <xsl:attribute name="class">current</xsl:attribute>
         </xsl:if>

         <xsl:if test="position() = last()">
            <xsl:attribute name="style">background-image: none</xsl:attribute>
         </xsl:if>


         <!-- Определяем адрес ссылки -->
         <xsl:variable name="link">
            <xsl:choose>
               <!-- Если внешняя ссылка -->
               <xsl:when test="url != ''">
                  <xsl:value-of disable-output-escaping="yes" select="url"/>
               </xsl:when>
               <!-- Иначе если внутренняя ссылка -->
               <xsl:otherwise>
                  <xsl:value-of disable-output-escaping="yes" select="link"/>
               </xsl:otherwise>
            </xsl:choose>
         </xsl:variable>

         <!-- Ссылка на пункт меню -->
         <a href="{$link}" title="{name}" hostcms:id="{@id}" hostcms:field="name" hostcms:entity="structure"><xsl:value-of disable-output-escaping="yes" select="name"/></a>

<xsl:choose>
   <xsl:when test="position() = 1 or position() = last()">
             <span>
                 <xsl:choose>
                <xsl:when test="position() = 1">
                         <xsl:attribute name="class">left</xsl:attribute>
                     </xsl:when>
                     <xsl:when test="position() = last()">
                         <xsl:attribute name="class">right</xsl:attribute>
                     </xsl:when>
                <xsl:otherwise></xsl:otherwise>
                 </xsl:choose>
                 <a href="" class="rr"></a>
             </span>
        </xsl:when>
   <xsl:otherwise><a class="ee" href=""></a></xsl:otherwise>
</xsl:choose>


      </li>
   </xsl:template>
</xsl:stylesheet>

Я только HTML верстку знаю, вот теперь приходится осваивать CMS
#
Re: Вложить в первый и последний li списка ul элемент span
если честно не понял, что вы хотите, какую ошибку то выдает?
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
#
Re: Вложить в первый и последний li списка ul элемент span
все работает, спасиба
Я только HTML верстку знаю, вот теперь приходится осваивать CMS
Авторизация