Сложение чисел в таблице - PullRequest
       3

Сложение чисел в таблице

1 голос
/ 26 января 2011

У меня есть таблица с такими строками:

<tr>
    <th width="30"></th>
    <th width="30">Time</th>
    <th>Description</th>
</tr>
<tr>
    <td><a href="#" class="edit">edit</a></td>
    <td class="time">2.50</td>
    <td>I did this, and also that, then a little of something else.</td>
</tr>
<tr>
    <td><a href="#" class="edit">edit</a></td>
    <td class="time">1.50</td>
    <td>Another description of time.</td>
</tr>
<tr>
    <td><a href="#" class="edit">edit</a></td>
    <td class="time">1.50</td>
    <td>Yet one more item entered.</td>
</tr>
<tr class="total">
    <td><strong>Total:</strong></td>
    <td><strong>[calculate total here]</strong></td>
    <td>&nbsp;</td>
</tr>

Я использую jQuery и как часть функции, которая возникает при добавлении времени, мне нужно добавить все числа в td.timeклетки.Но что касается меня, я не так хорош в написании циклов и не могу этого понять.

Мне просто нужен код для прохождения всех ячеек td.time и сложения чисел.Как только у меня будет общая сумма, я смогу вставить ее в [вычислить общую сумму здесь] спот.

Спасибо!

Ответы [ 4 ]

1 голос
/ 26 января 2011

Выберите элементы и используйте метод each для их зацикливания:

var tot = 0;
$('td.time').each(function(){
  tot += parseFloat($(this).text());
});
0 голосов
/ 26 января 2011

$('td[class*="time"]')

Это выбирает все теги TD с классом "время", если я прав.
Может быть, это то, что вы хотите использовать?

0 голосов
/ 26 января 2011

, если ваша таблица имеет id = "TestTable" и TD с общим временем id = "total_time", тогда

var total = 0;<br> $('#TestTable td.time').each(function(index) {<br> total = total + parseFloat(this.html());<br> });<br> $('#total_time').html(total);<br>

0 голосов
/ 26 января 2011

Вы можете использовать :nth-child(2n) для просмотра вторых элементов всех строк таблицы ...

var total = 0.0;
$('table tr td:nth-child(2n)').each(function(){
        val = parseFloat($(this).html());
        if (val > 0)total += val;
});
$('#result').html(total);

или поскольку ваши столбцы времени являются классами одинаковыми, вы можете даже ...

var total = 0.0;
$('.time').each(function(){
        val = parseFloat($(this).html());
        if (val > 0)total += val;
});
$('#result').html(total);

http://jsfiddle.net/WsSVQ/3/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...