2010-08-16 93 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