2010-08-16 110 views
2

我有一个php脚本,它可以在表格中生成价格表。生成表的示例:在表格单元上执行计算

<table> 
    <thead> 
    <tr> 
    <th></th> 
    <th>100</th>  
    <th>+100</th>   
    </tr> 
    </thead> 
    <tbody> 
    <tr> 
      <th>A5<span>210x148</span></th> 
      <td>€65.00</td> 
      <td>€8</td> 
     </tr> 
     <tr> 
      <th>A4<span>297x210</span></th> 
      <td>€75.00</td> 
      <td>€16</td> 
     </tr>  
    </tbody> 
</table> 

基本上我想要做的是制作一个按钮来添加增值税。所以:从价格单元中取值,添加21%并替换原始值。如果再次点击该按钮,则重新启动。

我的问题是,我不熟悉jquery,无法弄清楚如何提取和重写每个单元格的值。我可以得到我想要的效果,如果我将一个ID添加到单元格中,但我似乎无法弄清楚如何为所有单元格完成此操作。我无法工作的另一件事是剥离货币符号来进行计算。

任何帮助将不胜感激。

+5

我认为您不应该在客户端做这个计算。如果这一切都是在世代期间提供的,只是一种展示/隐藏它的方式,那可能会更好。 – Fosco 2010-08-16 14:23:39

+1

+1,ajax表中并设置'?vat = hidden'标志会更好 – 2010-08-16 14:28:17

+0

嗨Maikelv,如果您发现响应有用,请将其中一个标记为答案。 – Mauro 2010-12-09 12:10:37

回答

2

一个办法是给那些“价格”细胞类名

<td class='price'> 

,然后遍历元素的该集合:

$('price').each(function(index) { 
    vat = $(this).text().replace("$", "") * 1.21; 
    $(this).text() = vat; 
    }); 

未经测试,但希望它传达的理念。

+1

''呵?你是不是指''td class ='price'>' – 2010-08-16 14:25:22

+0

oops;纠正。 – LesterDove 2010-08-16 14:26:26

+0

修正了类名:-),您可以使用'parseFloat'代替,这意味着您不必猜测他们拥有哪种货币/格式。 – 2010-08-16 14:27:13

1

您可以将类添加到每个表格单元格,你将不得不计算增值税像

<td class='priceCell'> 

的价格,然后像做第一个按键

$('priceCell').each(function(index) { 
    $(this).text() = calculateVAT($(this).text()); 
    }); 

凡calculateVAT是一个计算增值税的函数。由于此解决方案对可以四舍五入的数字执行浮点计算,另一个可能的优雅解决方案是添加一个带有增值税总计的隐藏列,并且该按钮只是在两列之间切换。

+1

我喜欢隐藏的列解决方案,因为它允许我使用PHP编写大部分的程序。让我尝试一下... – Maikelv 2010-08-16 14:32:46

+1

隐藏的列实际上是一个非常好的主意,节省了计算它的所有客户端:-) – 2010-08-16 15:17:15