我有以下代码:(我使用jquery)
<a href="javascript:"
onclick="document.getElementById('TEST').style.display = ( (document.getElementById('TEST').style.display == 'block') ? 'none' : 'block' );">
<xsl:value-of select="$DisplayTitle"/>
</a>
<div id="TEST" style="display:none">
<xsl:value-of select="@Announcement" />
</div>
这很好用。但我正在拉多个元素,所以hide的第一个公告的唯一显示是合乎逻辑的,因为这是第一个带ID的元素:TEST
现在我希望您使用<xsl:value-of select="@ID" />
作为elementbyid
但我不能把它放在引号之间。以下格式不正确
<a href="javascript:"
onclick="document.getElementById('<xsl:value-of select="@ID" />').style.display = ( (document.getElementById('TEST').style.display == 'block') ? 'none' : 'block' );">
<xsl:value-of select="$DisplayTitle"/>
</a>
有关如何格式化此正确的提示吗?
答案 0 :(得分:1)
更紧凑的解决方案:
<div id="{@ID}">
<xsl:value-of select="@Announcement"/>
</div>
此外,在onclick
属性中使用:
getElementById({@ID})
答案 1 :(得分:0)
您需要使用1>} 中希望放置属性的元素中的 ...
<xsl:attribute>
更新根据OP的评论...
如上所述,<a href="javascript:">
<xsl:attribute name="onclick">document.getElementById('<xsl:value-of select="@ID" />').style.display = ( (document.getElementById('TEST').style.display == 'block') ? 'none' : 'block' );</xsl:attribute>
<xsl:value-of select="$DisplayTitle"/>
</a>
必须是 WITHIN 您希望使用该属性的元素...实际上它必须是 FIRST 命令之后。
而不是......
<xsl:attribute
你应该(用换行格式在这里查看)......
<xsl:attribute name="id"><div id="<xsl:value-of select="@ID" />"><xsl:value-of select="@Announcement" /></div></xsl:attribute>