0

我试图实现以下目标:添加两个表格列中的数字,对它们执行以下操作 ($price2 - $price1)/$price1 * 100,然后将结果添加到特殊 div 中的表格顶部。

<div id="mydiv">Percentage Gain/Loss</div>
<table id="mytable">
<tbody>
 <tr>
      <th>price1</th><th>price2</th>
   </tr>
  <tr>
      <td>10</td><td>30</td>
   </tr>
   <tr>
      <td>5</td><td>10</td>
   </tr>
   <tr>
      <td>15</td><td>5</td>
   </tr>
</tbody>
</table>

因此,所需的操作将使用 ((30+10+5) - (10+5+15))/(10+5+15)*100 的结果填充#mydiv 实现此目的的最佳方法是什么?此外,如果 price2 恰好低于 price1 输出应该是负数(我想类似的东西-Math.abs会起作用)。

4

2 回答 2

1

我只想给每个类添加类td,例如:

  <tr>
      <th>price1</th><th>price2</th>
   </tr>
  <tr>
      <td class="price1">10</td><td class="price2">30</td>
   </tr>
   <tr>
      <td class="price1">5</td><td class="price2">10</td>
   </tr>
   <tr>
      <td class="price1">15</td><td class="price2">5</td>
   </tr>

然后,在您的 JavaScript 中,使用该getElementsByClassName方法获取 price1 标签数组和第二个 price2 标签数组,然后使用该parseInt方法获取每个标签内的实际值并计算所需值。然后,您可以使用类似$('#mydiv').html(total). 希望这可以帮助。

于 2013-09-24T14:25:10.377 回答
1

您可以使用getElementsByTagName获取包含您的价格的 html 元素,然后进行计算。

var sum1 = 0, sum2 = 0;

var table = document.getElementById('mytable');
var rows = table.getElementsByTagName('tr');  // restrict the search to one table
for (var i=0, length = rows.length; i<length; i++) {
  var tds = rows[i].getElementsByTagName('td');
  if (tds.length >= 1) {
    var val1 = +tds[0].innerHTML; // unary plus converts the value to Number
    var val2 = +tds[1].innerHTML;
    sum1 += val1;
    sum2 += val2;
  }
}

document.getElementById('mydiv').innerHTML = (sum2 - sum1) / sum1 * 100 + '';

工作 JsFiddle:http: //jsbin.com/IqARONE/1/edit

于 2013-09-24T14:32:37.017 回答