2015-11-08 47 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

我不确定,你可以试试。 –