0

我试图记录我在循环中的位置,以便我可以切换我的一些表格行。

这是我在 for-each 行中使用的计数器。

<xsl:variable name="i" select="position()"/>

我遇到的问题是我不知道如何分配i我的行 ID,以便我页面中的每个表都可以打开和关闭自己的行,而不是一个按钮打开和关闭每个表中的每一行。

这就是我的 for-each 循环的样子

<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">或类似的东西。

4

1 回答 1

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 函数必须寻找像“sh_1”这样的 id。

于 2013-04-22T11:15:24.603 回答