如何使用XSL属性传递两个或多个参数

时间:2014-02-23 10:32:26

标签: javascript xml xslt

我通过xsl调用javascript函数,使用如下:

    <xsl:attribute name="onclick">
     <xsl:text>Toggle(</xsl:text>
     <xsl:value-of select="$i"/>
     <xsl:text>)</xsl:text>
    </xsl:attribute>

,功能如下:

    function Toggle(ID)
     {
        ------
     }

如果我必须传递两个参数呢? 即我怎么能调用这个函数??

    function Toggle(ID1, ID2)
    {
      -----
    }

目前我这样做:

    <xsl:attribute name="onclick" xmlns:xsl="#unknown">
      <xsl:text>Toggle(</xsl:text>
      <xsl:value-of select="$i" /> 
      <xsl:text>,ID)</xsl:text>
    </xsl:attribute>

这是对的吗?

2 个答案:

答案 0 :(得分:4)

如果你想在Javascript中传入一个字符串文字,那么你可以将它用单引号括起来,这样如果你想传入字符串常量foo就可以使用

<xsl:attribute name="onclick">
  <xsl:text>Toggle(</xsl:text>
  <xsl:value-of select="$i" /> 
  <xsl:text>, 'foo')</xsl:text>
</xsl:attribute>

我会检查文字结果元素和属性值模板是否允许您编写更紧凑和可读的内容,例如

<input type="button" onclick="Toggle({$i}, 'foo');"/>

如果您想在onclick元素上拥有input属性。

答案 1 :(得分:2)

如果ID1和ID2代表变量(正如您用ID所示),它可能是这样的,假设$1$2是变量:

<xsl:attribute name="onclick" xmlns:xsl="#unknown">
      <xsl:text>Toggle(</xsl:text>
      <xsl:value-of select="$i1" /> 
      <xsl:text>,</xsl:text>
      <xsl:value-of select="$i2" />
      <xsl:text>)</xsl:text>
</xsl:attribute>