将javascript变量放入xsl属性

时间:2014-11-11 20:52:25

标签: javascript jquery html css xslt

 <script type="text/javascript">

  var i=0;

  function increase()
  {
  i++;
  document.getElementById('slide').innerHTML= +i;
  document.getElementById('slidenum').innerHTML = document.getElementById('slide').innerHTML;
  }
</script>

<p>
 slide: <slide id="slide">0</slide>
</p>
<xsl:variable name="slidenum">
  <slidenum id="slidenum">0</slidenum>
</xsl:variable>
<p>
<xsl:variable name="imgsrcs">
  <xsl:value-of select="//movie[@num='($slide)']/thumb_img"/> </xsl:variable>

这里我有一个功能,每次onclick为前进按钮增加滑动1。 我想把幻灯片id放到imgsrcs变量中,它说$ slide所以点击前进按钮它将转到下一部电影,如果这是可能的我不知道很多css或javascript但是一个地方去了解如何我这样做基本上可以让幻灯片显示有所帮助。

1 个答案:

答案 0 :(得分:0)

假设您的XSLT在浏览器之外运行:

当页面在浏览器中显示时,JavaScript运行,而XSLT在浏览器加载之前生成HTML(在服务器端)。因此,JavaScript无法对XSL变量产生任何影响。

您可以做的是将XML电影数据转换为JavaScript字典,如下所示:

<script type="text/javascript">
var thumbs = { 
<xsl:foreach select="//movie">
    "<xsl:value-of select="@num"/>": "<xsl:value-of select="thumb_img"/>",
</xsl:foreach>
};
</script>

然后使用以下内容更新您的HTML:

var img=document.getElementById("...");
img.url = thumbs[$slide];

代码未经过测试,只是为了让您了解如何做到这一点。

请注意,在从XML生成JavaScript时,您必须检查是否需要转义数据(例如,确保XML数据中没有引号)。