我有一个侧边栏菜单,可以在 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
语句有关,但就是想不通。