2011-05-03 44 views
0

我需要创建所选值的总和,但是我对jquery位有个小问题。使用jquery读取行的值

我的HTML表格

<TR> 
<TD> 
<INPUT disabled onchange=updateDetails() value=33441 CHECKED type=checkbox name=invoiceRow dpieagent_iecontroltype="5"><INPUT value=false type=hidden name=isProfFee></TD> 
<TD>Professional fees for Searches</TD> 
<TD>285.00</TD></TR> 
<TR> 
<TD><INPUT onchange=updateDetails() value=36486 CHECKED type=checkbox name=invoiceRow dpieagent_iecontroltype="5"><INPUT value=false type=hidden name=isProfFee></TD> 
<TD>Professional fees</TD> 
<TD>3213.03</TD></TR> 

我的JavaScript是:

其中#InvoiceItemsRows<tbody>标签

function updateDetails() { 
     $("#InvoiceItemsRows input[type=checkbox][checked]").parent().last().each(
      function(index, value) { 
      alert(value.html()); 
      } 
    ); 
} 
+0

什么问题? – Zirak 2011-05-03 12:38:13

+0

好吧,只要看看它,可能的一个可能是你在'last'之后调用'each',所以你只是在迭代最后一个复选框输入。另一个可能的是'[checked]';尝试用':checked'替换它 – Zirak 2011-05-03 12:41:36

回答

1

试试这个(你必须关闭<Input>标签):

function updateDetails() { 
    var sum = 0; 
    $("#InvoiceItemsRows input[type=checkbox]:checked").each(
     function() { 
      sum += parseFloat($(this).closest('tr').children('td:eq(2)').text()); 
     } 
    ); 
    return sum; 
} 

alert(updateDetails()); 
1

你必须改变:

$("#InvoiceItemsRows input[type=checkbox][checked]") 

要:

$("#InvoiceItemsRows input:checked") 

这新的规则将返回所有 '检查' 的元素。查看:checked选择器的文档。

0

试试这个:

var total = 0; 

$('#InvoiceItemsRows input:checked').each(function() { 
    total += $(this).val(); 
}); 

你想总有什么在<td>虽然我怀疑?

0

你有无效的HTML你自己的价值观需要报价

<tr> 
    <td> 
     <input disabled="disabled" onchange="updateDetails()" value="33441" checked="checked" type="checkbox" name="invoiceRow" dpieagent_iecontroltype="5"> <input type="hidden" name="isProfFee"> 
    </td> 
    <td> 
     Professional fees for Searches 
    </td> 
    <td> 
     285.00 
    </td> 
</tr> 
<tr> 
    <td> 
     <input onchange="updateDetails()" value="36486" checked="checked" type="checkbox" name="invoiceRow" dpieagent_iecontroltype="5"> <input type="hidden" name="isProfFee"> 
    </td> 
    <td> 
     Professional fees 
    </td> 
    <td> 
     3213.03 
    </td> 
</tr> 

然后

$("#InvoiceItemsRows input:checked") 
2

的Javascript,也许不像其他一些人发布的那样华丽,但它是有道理的。

$(document).ready(function() { 
    $('[name=invoiceRow]').click(function() { 
     updateDetails(); 
    }); 
    function updateDetails() { 
    var total = 0; 
    var currentnum = 0; 
     $("input:checked").each(
      function(index, value) { 
       currentnum = $(this).val(); 
       currentnum = Number(currentnum); 
       total = total + currentnum; 
      }); 
     alert(total); 
    } 
}); 

HTML

<TR> 
<TD> 
<INPUT disabled value="33441" CHECKED type="checkbox" name="invoiceRow" dpieagent_iecontroltype="5"><INPUT value=false type=hidden name=isProfFee></TD> 
<TD>Professional fees for Searches</TD> 
<TD>285.00</TD></TR> 
<TR> 
<TD><INPUT value="36486" CHECKED type="checkbox" name="invoiceRow" dpieagent_iecontroltype="5"><INPUT value=false type=hidden name=isProfFee></TD> 
<TD>Professional fees</TD> 
<TD>3213.03</TD></TR> 

我修正了一些你可能要结束,虽然将它们固定缺失报价。

+0

oops忽略了你想在TD中的值忽略这个 – Gordnfreeman 2011-05-03 13:08:42

+0

谢谢你的想法:) – cpoDesign 2011-05-03 13:37:34