Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.10.2010, 11:13
Кандидат Javascript-наук
Отправить личное сообщение для lolka84 Посмотреть профиль Найти все сообщения от lolka84
 
Регистрация: 23.08.2010
Сообщений: 123

Туплю. Сумма элементов.
Добрый день.
Имеем:
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 ? Это числа. Оператор "+=" каждый раз тупо добавляет следущее значение в конец предыдущего, правильно понимаю, что значение воспринимается как текстовая строка ? Как тогда указать оператору, что значения - числа, что б он их суммировал ?
Ответить с цитированием
  #2 (permalink)  
Старый 27.10.2010, 11:19
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Number()
Ответить с цитированием
  #3 (permalink)  
Старый 27.10.2010, 11:26
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,566

Ну и я добавлю классическое:
sum += parseInt(value, 10);
Ответить с цитированием
  #4 (permalink)  
Старый 27.10.2010, 11:34
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

Можно так ещё:

+a + +b;
Ответить с цитированием
  #5 (permalink)  
Старый 27.10.2010, 12:37
Кандидат Javascript-наук
Отправить личное сообщение для lolka84 Посмотреть профиль Найти все сообщения от lolka84
 
Регистрация: 23.08.2010
Сообщений: 123

Спасибо.
Пытаюсь сделать проверку, что б скрипт складывал только тогда, когда значение не пустое, пока получается какаято ерунда:
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);
	}
}

Что не так ?
Ответить с цитированием
  #6 (permalink)  
Старый 27.10.2010, 13:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

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);
	}
}

Последний раз редактировалось рони, 28.10.2010 в 05:57. Причина: isNaN
Ответить с цитированием
  #7 (permalink)  
Старый 27.10.2010, 13:32
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от lolka84
if ((sumye != "") && (sumrur != "")) {
А зачем вы числа со строками сравниваете?
Ответить с цитированием
  #8 (permalink)  
Старый 27.10.2010, 13:52
Кандидат Javascript-наук
Отправить личное сообщение для lolka84 Посмотреть профиль Найти все сообщения от lolka84
 
Регистрация: 23.08.2010
Сообщений: 123

рони, спасибо)
Kolyaj, так ума нет
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить список элементов в localStorage? Бобр Общие вопросы Javascript 8 17.09.2013 14:32
Сделать список multiple select с сортировкой элементов Nargiza Элементы интерфейса 2 17.08.2010 14:44
Быстрый разбор списка элементов. B~Vladi Общие вопросы Javascript 31 14.07.2010 15:52
Как снять фокус со всех элементов? Logo Общие вопросы Javascript 7 02.07.2009 23:53
Выбор элементов и построение списка выбранных элементов. madgals Events/DOM/Window 6 14.04.2009 22:30