0

私は次のことを達成しようとしています: 2 つのテーブル列から数値を追加し、それらに対して次の操作を実行します ($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>

したがって、目的の操作では、 #mydiv に ((30+10+5) - (10+5+15))/(10+5+15)*100 の結果が入力されます。これを達成するための最良の方法は何ですか? また、price2 が price1 よりも低い場合、出力は負になるはずです (何か-Math.absがうまくいくと思います)。

4

2 に答える 2

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 に答える
1

td次のように、クラスを each に配置するだけです。

  <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 タグの 2 番目の配列をparseInt取得し、メソッドを使用して各タグ内の実際の値を取得し、必要な値を計算します。次に、 のようなものを使用してこの値を入力します$('#mydiv').html(total)。お役に立てれば。

于 2013-09-24T14:25:10.377 に答える