2015-11-08 46 views
0

我正在使用數據庫中的值生成表,每個列的總數顯示在表的末尾。 我想讓用戶選擇刪除他們不需要的行,並相應地更改總數。jQuery - 按當前行中的類選擇元素

由於表單將被提交,我已經添加了隱藏的輸入元素。我希望能夠獲取被刪除行中列的值並從總數中減去它,然後顯示新的總和。

我認爲最好的方法是給每個列的類名,特定的行獲取該類的值,因爲它正在被刪除。

這是我的表結構

<tbody>'; 
for($i=0;$i<count($alto);$i++){ 
echo' <tr> 
     <td>'.$key[$i].'</td> 
     <td>'.$talk[0][$i].'<input type="hidden" class="bate" value="'.$talk[0][$i].'" name="0'.$key[$i].'"/></td> 
     <td>'.$talk[1][$i].'<input type="hidden" class="vito" value="'.$talk[1][$i].'" name="1'.$key[$i].'"/></td> 
     <td>'.$talk[2][$i].'<input type="hidden" class="hist" value="'.$talk[2][$i].'" name="2'.$key[$i].'"/></td> 
     <td><button class="delete" type="button">Delete</button><td> 
     </tr>'; 
} 
echo '</tbody> 

從我有限的jQuery的知識,我覺得我需要是這樣的:

var exp = $(this).val('.vito'); 

也許我有穿越的問題,我需要添加一個.parents()標籤在那裏,但我不確定。

+0

所以你想爲每一個tr添加bate,vito,hist並獲得總數? – MiDri

+0

你說的應該可以工作,但我認爲你的jQuery代碼不會得到你想要的結果。如果'this'指的是'',那麼你用'$(this).find('vito')。val();' – Terminus

回答

0

創建功能calculate_total()是計算總表和刪除一行之後叫它​​:

function calculate_total(){ 
    var bate_total, vito_total, hist_total = 0; 

    $("table").find('tr').each(function(){ 
     bate_total += parseInt($(this).find('.bate').val()); 
     vito_total += parseInt($(this).find('.vito').val()); 
     hist_total += parseInt($(this).find('.hist').val()); 
    }); 

    //Here you can assign the new totals to the columns that contain totals values 
} 

希望這有助於。

+0

'選擇'.vito'的值這不行嗎? $(this).find('。className')。val() – Shaz

+0

我不確定,你可以試試。 –