2011-05-03 45 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