2

私は次のコードを持っています:(私は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>

これを正しくフォーマットする方法に関するヒントはありますか?

4

2 に答える 2

1

よりコンパクトなソリューション:

<div id="{@ID}">
    <xsl:value-of select="@Announcement"/>
</div>

また、onclick属性の使用内で:

getElementById({@ID})
于 2012-07-19T12:10:12.423 に答える
0

属性を配置したい要素内で<xsl:attribute>コマンドを使用する必要があります...

<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>

OPのコメントに基づいて更新...

上で述べたように、属性を使用したい<xsl:attribute要素内にある必要があります...実際、それはその後の最初のコマンドでなければなりませ

それ以外の...

<xsl:attribute name="id"><div id="<xsl:value-of select="@ID" />"><xsl:value-of select="@Announcement" /></div></xsl:attribute>

あなたは持っているべきです(ここで見るために改行でフォーマットされています)...

<div>
  <xsl:attribute name="id"><xsl:value-of select="@ID"/></xsl:attribute>
  <xsl:value-of select="@Announcement"/>
</div>
于 2012-07-19T08:28:14.863 に答える