1

我有一个侧边栏菜单,可以在 li 中创建 div。

我遇到的问题是,如果菜单中的项目处于活动状态,则不应在其之前创建非活动 div。即:它应该只有<li><div></div></li>,而不是<li><div></div><div></div></li>

      <xsl:if test="number(ParentEntityID) = 0 and EntityID!=$pCatID">
        <div class="inactive">
          <!--<a href="{concat('c-',EntityID,'-',SEName,'.aspx')}" style="color:black">-->
          <xsl:choose>
            <xsl:when test="count(child::Entity)=0">

              <a href="{concat('c-',EntityID,'-',SEName,'.aspx')}" style="color:black">
                <xsl:value-of select="$eName"/>
              </a>
            </xsl:when>
            <xsl:otherwise>
              <xsl:choose>
                <xsl:when test="EntityID=$ParentCategoryID">
                  <div class="active">
                    <xsl:value-of select="$eName"/>
                  </div>
                </xsl:when>
                <xsl:otherwise>
                  <xsl:value-of select="$eName"/>
                </xsl:otherwise>
              </xsl:choose>
            </xsl:otherwise>
          </xsl:choose>

          <!--</a>-->
        </div>
      </xsl:if>

输出:

<li>
  **<div class="inactive">**
    <div class="active">
    Active item
  **</div>**
  </div>
</li>
<li>
  <div class="inactive">
  Inactive item
  </div>
</li>

上面的代码中必须改变什么,以便不活动的 div 不会在活动 div 之外创建,并且应该只在它不活动的地方创建?我已将不应该存在的行放在**中。

我知道这与正确安排test="EntityID=$ParentCategoryID"orif语句有关,但就是想不通。

4

1 回答 1

0

这个版本呢?

  <xsl:if test="number(ParentEntityID) = 0 and EntityID!=$pCatID">
      <xsl:choose>
        <xsl:when test="count(child::Entity)=0">
          <a href="{concat('c-',EntityID,'-',SEName,'.aspx')}" style="color:black">
            <xsl:value-of select="$eName"/>
          </a>
        </xsl:when>
        <xsl:otherwise>
          <xsl:choose>
            <xsl:when test="EntityID=$ParentCategoryID">
              <div class="active">
                <xsl:value-of select="$eName"/>
              </div>
            </xsl:when>
            <xsl:otherwise>
              <div class="inactive">
              <xsl:value-of select="$eName"/>
               </div>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:otherwise>
      </xsl:choose>
  </xsl:if>
于 2013-05-22T04:05:28.603 回答