在xsl中使用javascript切换开关的问题

Problem with a javascript toggle switch in xsl

本文关键字:开关 问题 javascript xsl      更新时间:2023-09-26

这就是我想要做的:

<xsl:template match="/">
<html>
<body>
<script type="text/javascript"> 
function toggle(id) 
{
  var e = document.getElementById(id);
  if (e.style.display == '')
    e.style.display = 'none';
  else
    e.style.display = '';
}  
</script>
<xsl:for-each select="s:measCollecFile/s:measData/s:measInfo">
  <a href="#" onclick="toggle(s:measValue/@measObjLdn)"><xsl:value-of select="s:measValue/@measObjLdn"/></a>
<div id="s:measValue/@measObjLdn" style="display:none">
  some text.
</div>
</xsl:for-each>
</body>
</html>
</xsl:template>

我的问题是我不能让@value工作。如果我硬编码一个字符串而不是@value,它工作得很好。所以代码基本上是有效的。

编辑:真实路径名

function toggle(ele) 
{
  if (ele.style.display == '')
    ele.style.display = 'none';
  else
    ele.style.display = '';
} 

使用它作为当前对象。

 <a href="#" onclick="toggle(this)">

或者,使用xsl:attribute设置属性值

<a href="#" >
   <xsl:attribute name="onclick">
     toggle('<xsl:value-of select="@value"/>');
   </xsl:attribute>
   <xsl:value-of select="@value"/>
</a>