Туплю. Сумма элементов.
Добрый день.
Имеем: 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, время: 20:15. |