Проблема с переключателем JavaScript в XSL - PullRequest
0 голосов
/ 02 августа 2011

Это в основном то, что я хочу сделать:

<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, она работает нормально.Так что код по сути работает.

РЕДАКТИРОВАТЬ: реальные имена путей

1 Ответ

0 голосов
/ 02 августа 2011
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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...