XSL,在js函数调用中嵌入了一个select值

时间:2015-10-21 12:16:42

标签: javascript xslt

我有以下XSL代码(格式' s /创建HTML表)。表格中的最后一列有一个按钮,它有一个与之关联的onclick事件。

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes" version="4.0"/>
<xsl:template match="/">
<table border="1" id="table1" align="center">
<tr><th>Item Number</th>
<th>Item Name</th>
<th>Description</th>
<th>Price</th>
<th>Quantity</th>
<th>Add</th></tr> 
<xsl:for-each select="/Items/Item">
<tr><td><xsl:value-of select="ItemID"/></td>
<td><xsl:value-of select="ItemName"/></td>
<td><xsl:value-of select="ItemDesc"/></td>
<td><xsl:value-of select="ItemPrice"/></td>
<td><xsl:value-of select="ItemQty"/></td>
<td><button onclick="addtoCart(15001)">Add to Cart</button></td> 
</tr>
</xsl:for-each>
</table>

</xsl:template>
</xsl:stylesheet>

我想要做的是用ItemID替换数字15001 ......所以代码可能是这样的 - 但我不确定应该如何构造它。

<td><button onclick="addtoCart(<xsl:value-of select="ItemID">)">Add to Cart</button></td>

哦......这里是javascript代码,它会调用它......

function addtoCart(items)
{
   alert(items);
}

目前正如(通过值&#39; 15001&#39;)代码按预期工作。 我知道我可以实现纯粹在Javascript中尝试做的事情(通过迭代通过表来查看按下了哪个按钮),但我想要在&#39; addtoCart&#39;中传递ItemID。功能似乎会更清洁......&amp;很优雅。

1 个答案:

答案 0 :(得分:0)

您可以在此处使用Attribute Value Templates

试试这个:

installed facet="jst.web" version="2.5"
installed facet="jst.java" version="1.7"

属性中的花括号表示要计算的表达式,而不是字面输出。

注意:您也可以使用<button onclick="addtoCart({ItemID})">Add to Cart</button> 创建属性,但正如您所看到的,属性值模板的详细程度要低得多

xsl:attribute