【问题标题】:XML/XSL and Javascript Shopping CartXML/XSL 和 Javascript 购物车
【发布时间】:2015-01-02 13:31:38
【问题描述】:

我的大学作业是使用 HTML、XSL、XML 和 Javascript 创建购物车。我决定使用 XML/XSL 和 Javascript。

我已经设法获得了一个表格,以及一个用于我的基本结构的 javascript 按钮。我的问题是,如何使用我的 javascript 函数中的 XML 数据。

我的代码可以在这里找到:

http://xsltransform.net/3Nqn5Yo/11

javascript 代码目前只是占位符,因为它不起作用。我想解决的是如何在 Javascript 函数“function AddtoCart(name,description,price)”中使用我的 XML 数据。

【问题讨论】:

  • 您已经决定再次使用 XML 数据?当 XML 已经转换为 HTML 时,您可以直接使用 HTML。
  • 我认为因为在 XML 中我已经定义了关于每个项目的所有内容(价格、描述等),所以将它们作为对象传递给 javascript 比从它生成的 HTML 中进行更容易。如果已经在 XML 中完成,我不想在我的 javascript 代码中将所有内容定义为新对象。这是错误的做法吗?
  • 不,没有错。我的错误 - 乍一看,我以为您想在单击按钮时再次从 XML 中检索数据。我刚刚给出了答案,也许这就是你要找的。​​span>

标签: javascript xml xslt shopping-cart


【解决方案1】:

我刚刚在这里调整了您的代码:http://xsltransform.net/3Nqn5Yo/12
如果您想在每个AddToCart() 调用中直接获取 XML 数据,调整如下:更改上一个

<button type="button" onclick="AddtoCart('$Product','$Description','$price')">

进入

<button type="button" onclick="AddtoCart('{Product}','{Description}','{price}')">
     Add one to cart
</button>

使用{} 在转换时计算变量。

示例结果:

<button type="button" onclick="AddtoCart('Belts (F)','Woven Finish Fashion Belt','£21.99')">
    Add one to cart
</button>

附加细节 - 我注意到转换后的脚本因为这个表达式而无法工作

while (orderedProductsTblBody.rows.length & gt;  

这可以通过将脚本部分编写为&lt;xsl:text&gt; 并使用disable-output-escaping="yes" 来处理,如下所示:

<xsl:text disable-output-escaping="yes">
   &lt;script&gt;
   ... // rest of code stays the same as before
   &lt;script&gt;
</xsl:text>

导致

<script>
...
while(orderedProductsTblBody.rows.length > 0     
...
</script>

已保存此调整here

【讨论】:

  • 这正是我想要的,谢谢!
  • @SilentUK 很高兴我能为您提供帮助,并且刚刚更新了我的答案,增加了一个可能会节省一些时间的小细节。
猜你喜欢
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多