2017-01-06 4 views
0

Попытка перемещения чисел в таблице вокруг и сделать некоторые вычисления. Число var asrev - pulling имеет знак $ перед ним, и все числа в таблице имеют десятичные значения. Вот как я пытался заставить его работать.Получите номер из таблицы в виде числа с десятичными знаками.

  //AS Rev 
      var elementsasrev = $(this).parent().find('tr').filter('.'+trclass); 
      var asrev = parseInt(elementsasrev.eq(1).find("td:nth-child(6)").html()); 
      if(typeof asrev !== "undefined") { 
      $('.'+trclass).not(this).find(".asrev").html(asrev); 
      }    
      //FBspend 
      var fbspend = parseInt($(this).find("td:nth-child(7)").html()); 
      $(this).find(".fbspend").html(fbspend); 
      //Profit 
      var profit= asrev - fbspend; 
      $(this).find(".profit").html(profit).css('color','#479e3a'); 

В конце концов, он получает fbspend как целое число без десятичных знаков, а также для asrev и прибыли я получаю NaN

ответ

0

Не знаете вашу структуру HTML, но если у вас есть знак $ перед номерами, вы должны сделать что-то вроде этого:

var asrev = parseFloat($('tr').eq(0).find("td:nth-child(1)").html()); 
 
      var data = $('tr').eq(0).find("td:nth-child(1)").html(); 
 
      console.log(asrev); 
 
      console.log(parseFloat(data.replace('$',''))); // this is what you need
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table class="data"> 
 

 
    <tr> 
 
    <td>$66.66</td> 
 
    <td>Entry First Line 2</td> 
 
    <td>Entry First Line 3</td> 
 
    <td>Entry First Line 4</td> 
 
    </tr> 
 

 
</table>

Итак, первый удалить знак $, который не даст желаемого результата, либо вы используете ParseInt или или parseFloat, и получить значение вам нужно.

0

Вам нужно использовать parseFloat, но сначала удалите $ из строки.

var asrev = parseFloat(elementsasrev.eq(1).find("td:nth-child(6)").html().replace('$',''); 
... 
var fbspend = parseFloat($(this).find("td:nth-child(7)").html()); 
... 
var profit = asrev - fbspend; 

Вы получаете NaN, потому что asrev не является числом - она ​​содержит «$» знак; вы пытаетесь выполнить математику на строку и целое число и получить float - это не сработает.

+0

Похоже, вы забыли закрывающую скобу в конце первой строки. Хотя, когда я добавил его, консоль подчеркнула эту часть как ошибку .replace ('$', '')); – Shalambalam