English 中文(简体)
j per
原标题:Using jquery to get per row totals and grand total of table
  • 时间:2009-09-01 01:05:02
  •  标签:

因此,这一简短的版本是:我能否在<代码>each()之前仅反驳遴选人相应部分的内容? 或者,没有<条码>条码(<>条码/代码>文件,了解我想要的东西的更简单的方法吗?


我认为,这样做会比较容易,因为我认为我刚才没有某些基本的原则,即有人玩笑。

因此,设想:

我有一个表格(在此情况下是适当的),每个单元都有一个文本<条码>。 最后一项投入只是读写的,本应是该行其他价值的总和。 我有一幅真正的小script,可以找到每行的总和,然后是每行的总和。

此处为:

<table>
<thead>
<tr><th>Col 1</th><th>Col 2</th><th>Col 3</th><th>Total</th></tr>
</thead>
<tbody>
<tr id="row1"><td><input type="text" /></td><td><input type="text" /></td><td><input type="text" /></td><td class="total"><input type="text" readonly="readonly" /></td></tr>
<tr id="row2"><td><input type="text" /></td><td><input type="text" /></td><td><input type="text" /></td><td class="total"><input type="text" readonly="readonly" /></td></tr>
<tr id="row3"><td><input type="text" /></td><td><input type="text" /></td><td><input type="text" /></td><td class="total"><input type="text" readonly="readonly" /></td></tr>
</tbody>
</table>

javascript将证实所输入的数据是数字,只是很明确。

因此,我有一份活动演讲人,负责<代码>onchange的每项投入,更新用户输入数据并将其移至下个单位/投入时的总数。 然后,我有一个称为<代码>更新的功能,目前使用的是for loops to loop through each row and within that loop, each cell, and final set the content in the total cell to amount.

快速说明: 我将以下守则列入其中,以表明我不只想一手,并表明我所铭记的基本逻辑。 请感到可以自由ski或ski。 它运作,不需要任何欺骗或批评。

这正是:

function updateTotal() {
    table = document.getElementsByTagName("tbody")[0];
    allrows = table.getElementsByTagName("tr");
    grandtotal = document.getElementById("grand");
    grandtotal.value = "";

    for (i = 0; i < allrows.length; i++) {
        row_cells = allrows[i].getElementsByTagName("input");
        row_total = allrows[i].getElementsByTagName("input")[allrows.length - 2];
        row_total.value = "";

        for (ii = 0; ii < row_cells.length - 1; ii++) {
            row_total.value = Number(row_total.value) + Number(row_cells[i][ii].value);
            grandtotal.value = Number(grandtotal.value) + Number(row_cells[i][ii].value);
        }
    }
}

现在,我正试图用jquery syntax重述上述内容,但我 m。 我认为,最佳途径是使用<代码>each (> loops,行文如下:

function findTotals() {
$("tbody tr").each(function() {
    row_total = 0; 
    $($(this) + " td:not(.total) input:text").each(function() {
        row_total += Number($(this).val());
        }); 
    $($(this) + " .total :input:text").val(row_total);
});

}

但是,使用<代码>(本项),似乎在我看来行不通。 我读过并看到,在每一条路程点使用<代码>$(本),与我所期望的每项配对元素相对照,但我不了解我如何在每项功能中穿透这一要素。 上述情况也留下了大片——总线,因为我已经把大片变量变成了工作。 我只想听一下一下一下一下:一把一把一把一把:

 $($(this).attr("id") + " td:not(.total) input:text").each(function() {

取得了一些成功,但当我尝试加入《公约》时,它却得以打破。 我认为,我需要每一行都给予回报,以完成这项工作,因为每一部分都应提到我所铭记的行文。


因此,这一简短的版本是:我能否利用每一轮机只反驳在座标的内涵,如果是的话,正确的yn子是什么? 或者,在没有任何漏洞的情况下,找到我所希望的东西的更简单的方法吗?

Oh, 最后一次见到......

能否得到所有与舱位相匹配的元件(而不是长篇)的数字? 我更热心研究这个问题,但如果任何人知道的话,就会使其中一些问题更加容易。

最佳回答

你们试图将情况错误地确定下来:

function findTotals() {
    $("tbody tr").each(function() {
        row_total = 0; 
        $("td:not(.total) input:text",this).each(function() {
           row_total += Number($(this).val());
        }); 
        $(".total :input:text",this).val(row_total);
    });

}

详情请查阅:

问题回答

There can be two parameters for a selector. The second parameter is the context htat that the search is to take place in. Try something like the following: $( #tableID tbody tr).each(function(){ //now this is a table row, so just search for all textboxes in that row, possibly with a css class called sum or by some other attribute $( input[type=text] ,this).each(function(){ //selects all textbosxes in the row. $(this).val() gets value of textbox, etc. }); //now outside this function you would have the total //add it to a hidden field or global variable to get row totals, etc. });





相关问题
热门标签