如何将XSL属性值传递给HTML5数据标签?

时间:2013-10-25 07:49:23

标签: javascript jquery xml html5 xslt

我是XSLT的新手,请原谅我的noob问题。

在这里,我试图使用javascript传递xsl:属性的值。 因此,当我单击按钮时,它会假设获取XSL属性的值。 但是我无法获得预期的输出。

代码的HTML部分在这里:

<xsl:attribute name="value">
   <xsl:value-of select="110"/>
</xsl:attribute>

<input type="button" name="testBtn" id="testBtn"
   value="Test Button" data-test="$value"/>

,javascript代码在这里:

$("#testBtn").click(function() {
   var outputResult = $(this).attr('data-test');

   console.log(outputResult);
});

单击按钮时的预期输出:

    110

我已经包含了一个jsfiddle以防我的问题不清楚 http://jsfiddle.net/rfa75/

我在这里做错了什么?

2 个答案:

答案 0 :(得分:1)

正如FrédéricHamidi所说,你正在将html与XSL混合,这不是XSLT转换的工作方式。 无论如何,你可能需要这样的东西(在你的XSL中):

<input type="button" name="testBtn" id="testBtn" value="Test Button">
  <xsl:attribute name="data-test">
    <xsl:value-of select="110"/><!-- "110" or any expression you should need -->
  </xsl:attribute>
</input>

将输出此HTML:

<input type="button" name="testBtn" id="testBtn" value="Test Button" data-test="110"/>

答案 1 :(得分:1)

您还可以使用AVT(属性值模板({}))执行类似于您原来的操作。

<input type="button" name="testBtn" id="testBtn"
   value="Test Button" data-test="{data-test}"/>