Туплю. Сумма элементов.
Добрый день.
Имеем:
function summitog1() {
var table = document.getElementById("one");
var summyeval = document.getElementById("summitogye1");
var summrurval = document.getElementById("summitogrur1");
for (var i=1;i<table.rows.length-2;i++) {
var td = table.rows[i];
for (var q=0;q<td.cells.length;q++) {
var o1 = td.cells[3];
var o2 = td.cells[4];
o1 = o1.getElementsByTagName('input')[0];
o2 = o2.getElementsByTagName('input')[0];
}
}
summyeval.value = <сумма всех o1> ???
summrurval.value = <сумма всех o2> ???
}
Как найти суммы o1 и o2 ? Это числа. Оператор "+=" каждый раз тупо добавляет следущее значение в конец предыдущего, правильно понимаю, что значение воспринимается как текстовая строка ? Как тогда указать оператору, что значения - числа, что б он их суммировал ? |
Number() |
Ну и я добавлю классическое:
sum += parseInt(value, 10); |
Можно так ещё:
+a + +b; |
Спасибо.
Пытаюсь сделать проверку, что б скрипт складывал только тогда, когда значение не пустое, пока получается какаято ерунда:
function summitog1() {
var table = document.getElementById("one");
var summyeval = document.getElementById("summitogye1");
var summrurval = document.getElementById("summitogrur1");
for (var i=1;i<table.rows.length-2;i++) {
var td = table.rows[i];
for (var q=0;q<td.cells.length;q++) {
var o1 = td.cells[4];
var o2 = td.cells[5];
o1 = o1.getElementsByTagName('input')[0];
o2 = o2.getElementsByTagName('input')[0];
}
var sumye = Number(o1.value);
var sumrur = Number(o2.value);
if (o1.value != "") {
sumye += sumye;
}
if (o2.value != "") {
sumrur += sumrur;
}
}
if ((sumye != "") && (sumrur != "")) {
summyeval.value = (sumye).toFixed(2);
summrurval.value = (sumrur).toFixed(2);
}
}
Что не так ? |
lolka84,
посмотрите тут и возможный вариант
function summitog1() {
var table = document.getElementById("one"),
summyeval = document.getElementById("summitogye1"),
summrurval = document.getElementById("summitogrur1"),
sumye=0,sumrur=0;
for (var i=1;i<table.rows.length-2;i++) {
var td = table.rows[i],o1 = td.cells[4],o2 = td.cells[5];
o1 = o1.getElementsByTagName('input')[0];
o2 = o2.getElementsByTagName('input')[0];
if(!isNaN(Number(o1.value)))sumye +=Number(o1.value);
if(!isNaN(Number(o2.value)))sumrur +=Number(o2.value);
}
if (sumye && sumrur ){
summyeval.value = (sumye).toFixed(2);
summrurval.value = (sumrur).toFixed(2);
}
}
|
Цитата:
|
рони, спасибо)
Kolyaj, так ума нет :) |
| Часовой пояс GMT +3, время: 15:50. |