我正在尝试计算我在循环中的位置,以便我可以切换一些表格行。
这是我在每行中使用的计数器。
<xsl:variable name="i" select="position()"/>
我遇到的问题是我不知道如何将i
指定为我的行ID,以便我页面中的每个表都可以打开和关闭自己的行,而不是打开和关闭一个按钮每张桌子的每一行。
这就是我的每个循环看起来像
<xsl:for-each select="Talents_Passive">
<xsl:variable name="i" select="position()"/>
<div style="font-family:Calibri, Arial; font-size:5pt">
<xsl:if test="Talent != ''">
<table border="0" width="550">
<tr>
<td bgcolor="#A0A0A0" width="80%">
<a href="#" onClick="SwitchMenu(this, {$i})">Toggle Form?</a> <b id="toggle"><xsl:value-of select="Talent"/></b></td>
<td bgcolor="#A0A0A0" width="20%" align="center">
<xsl:value-of select="Cost"/><xsl:text> - </xsl:text><xsl:value-of select="Type"/></td>
</tr>
<xsl:if test="Prerequisite != ''">
<tr>
<td colspan="2" bgcolor="#C0C0C0"><b>Prerequisite: </b><xsl:value-of select="Prerequisite"/></td>
</tr>
</xsl:if>
<tr>
<td colspan="2" bgcolor="#C0C0C0">
<xsl:if test="Action != ''">
<b>Action: </b><xsl:value-of select="Action"/>
</xsl:if>
<xsl:if test="Range != ''">
<xsl:text> </xsl:text> <b>Range: </b><xsl:value-of select="Range"/>
</xsl:if>
<xsl:if test="Cost != ''">
<xsl:text> </xsl:text> <b>Cost: </b><xsl:value-of select="Cost"/>
</xsl:if>
</td>
</tr>
<xsl:if test="Action != ''">
<tr>
<!-- I would like to open and hide this row and give control to each table that is created in this for-each loop -->
<td colspan="2" bgcolor="#E0E0E0" id="{$i}" style="display:none;"><b>Action: </b><xsl:value-of select="Action"/></td>
</tr>
</xsl:if>
</table>
</xsl:if>
</div>
</xsl:for-each>
所以我想知道如何获取i
的当前值并将其分配给我的行<td id="i">
或其他内容。
答案 0 :(得分:1)
看起来你应该将id和style="display:none;"
从td移到tr。
<tr id="sh_{$i}" style="display:none;">
<!-- I would like to open and hide this row and give controll to each table that is creted in this for each loop -->
<td colspan="2" bgcolor="#E0E0E0" ><b>Action: </b><xsl:value-of select="Action"/></td>
</tr>
你的javascript函数不仅要查找id,比如“sh_1”。