Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   не суммирует (https://javascript.ru/forum/jquery/18021-ne-summiruet.html)

Abraham 13.06.2011 19:20

не суммирует
 
$(document).ready(function() {
var ssil = $('#combined_table.vis tbody#mainTable tr.nowrap:eq(0) td.unit-item:eq(7)').text();
var znach = ssil.match(/\d+/); // 2988
var ssil1 = $('#combined_table.vis tbody#mainTable tr.nowrap:eq(1) td.unit-item:eq(7)').text();
var znach1 = ssil1.match(/\d+/); // 3495
var itog = znach + znach1;
alert(itog);


1) не суммирует переменные, делит, вычетает, умножает нормально, а суммировать не хочет
выводит 29883495, просто слепило два числа в одно
почему так?

2) как сделать короче функцию
$('#combined_table.vis tbody#mainTable tr.nowrap td.unit-item') - может быть до 1000 на странице, подскажите функцию которая просчитает все строки

nikita.mmf 13.06.2011 19:35

var res = $("tr.nowrap>td.unit-item", "#mainTable").map(function(){  
  return parseFloat($(this).text().math(/-?\d+(?:\.\d+)?/));
});

Abraham 13.06.2011 20:01

Цитата:

Сообщение от nikita.mmf (Сообщение 108491)
var res = $("tr.nowrap>td.unit-item", "#mainTable").map(function(){  
  return parseFloat($(this).text().math(/-?\d+(?:\.\d+)?/));
});

спасибо конечно
но что это и куда это х.... его знает
чулувек, я только осваиваю, раскажи что с этим делать

Sweet 13.06.2011 20:21

Цитата:

Сообщение от Abraham
осваиваю

Не осваиваешь, а по****ашь всем мозг. Вон, уже и nemo сам разобрался. Если это и попытка чему-то научится (в чем я сомневаюсь), то глупо делать это с середины: типа, основы мне не нужны, но и профессиональный уровень - тоже.

melky 13.06.2011 20:47

сорвался :)

Abraham 13.06.2011 21:24

:cray:

Abraham 19.06.2011 01:28

поможет кто нить или нет?

Abraham 19.06.2011 03:26

вот что то навоял

var vivod;
$('tr.nowrap td:nth-child(16)').each(function () {
  vivod = $(this).text();
  $('#combined_table').after(vivod);
});


собирает инфу text на 23 строках, 4-3 значные цифры
как теперь каждую строку проссуммировать?
.after(vivod) даёт это
4843004183354330234453310330233023461330233023308331033083301330328 2033293382342834091574

SkyLight 19.06.2011 09:00

Ну естественно оно это выведет, ведь в этом куске кода нет и намека на сложение. У вас просто значения воспринимаются не как числа, а как строки. Приведите их к числам, используя parseInt или parseFloat и складывайте хоть до посинения.

Abraham 19.06.2011 13:21

спасибо, сделал
var vivod;
$('tr.nowrap td:nth-child(16)').each(function () {
  vivod = $(this).text();
  polvivod = parseInt(vivod);
  $('#combined_table').after(polvivod);
});

теперь помогите как их суммировать?!

з.ы только не кричите что типа сам ничего не делаю, весь инет перерыл, не нашёл ничего

melky 19.06.2011 13:25

странный вопрос.

беда беда, в интернете нет операторов !!

а это ?

var vivod,sum=0;

$('tr.nowrap td:nth-child(16)').each(function () {
  sum+= parseInt(   $(this).text()   ); // или, если там просто цифры, то   +$(this).text()
  });

$('#combined_table').after(sum);

Abraham 19.06.2011 13:33

респект тебе и уважуха melky
если честно, то что ты дал по ссылке, я бы не сразу понял
а так сразу поняно, терь знать буду

з.ы отзыв заплюсовать тебе не могу :(


Часовой пояс GMT +3, время: 21:35.