xsl中的javascript切换开关存在问题

xsl中的javascript切换开关存在问题,javascript,xml,xslt,Javascript,Xml,Xslt,这基本上就是我想做的: <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.

这基本上就是我想做的:

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

功能切换(id)
{
var e=document.getElementById(id);
如果(e.style.display=='')
e、 style.display='none';
其他的
e、 style.display='';
}  
一些文本。
我的问题是我无法让@value发挥作用。如果我硬编码一个字符串而不是@value,它就可以正常工作。因此,代码本质上是有效的

编辑:真实路径名

function toggle(ele) 
{
  if (ele.style.display == '')
    ele.style.display = 'none';
  else
    ele.style.display = '';
} 
将其用作当前对象

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


我尝试了使用第二个选项的新函数,但它不起作用,即“错误:'style.display'为null或不是对象”。第一种方法行不通,因为格式与我说的不完全一样。我已经编辑以显示真实的xpath名称…那么如何?我无法更改xml文件的结构,除非将您的xsl文件更改为第三个块或根据前两个块进行修改。两者都应该起作用。添加属性不会破坏您的结构当我按下结果切换时,我会得到“Error:object required”,您是否认为这可能是一个问题:当div处于for循环时,如何为其设置id=“s:measValue/@measObjLdn”。您需要将s:measValue/@measObjLdn的值分配给div。再次使用xsl属性为div设置不同的id
<a href="#" >
   <xsl:attribute name="onclick">
     toggle('<xsl:value-of select="@value"/>');
   </xsl:attribute>
   <xsl:value-of select="@value"/>
</a>