如何检测html表中的负值?

时间:2013-06-11 11:23:47

标签: javascript html html-table

我在html中有一个表,我使用Tangle框架使值看起来是动态的表。
我想要的是检查特定的<td>,如果其数值变为负数,则该特定<tr>的整个<td>应更改其背景颜色为红色 这可以使用java脚本完成,或者一些简单的代码行可以解决这个问题吗? 请帮我这样做。

2 个答案:

答案 0 :(得分:5)

<html>
<head>
    <style type="text/css">
     td.negative { color : red; }
    </style>
    <script language="JavaScript" type="text/javascript">
    <!--
    function MakeNegative() {
        TDs = document.getElementsByTagName('td');
        for (var i=0; i<TDs.length; i++) {
                var temp = TDs[i];
                if (temp.firstChild.nodeValue.indexOf('-') == 0) temp.className = "negative";
            }
    }
    //-->
    </script>
</head>
<body>
 <table id="mytable">
  <caption>Some Financial Stuff</caption>
  <thead>
    <tr><th scope="col">Date</th><th scope="col">Money is good</th></tr>
  </thead>
  <tbody>
  <tr><td>2006-05-01</td><td>19.95</td></tr>
  <tr><td>2006-05-02</td><td>-54.54</td></tr>
  <tr><td>2006-05-03</td><td>34.45</td></tr>
  <tr><td>2006-05-04</td><td>88.00</td></tr>
  <tr><td>2006-05-05</td><td>22.43</td></tr>
  </tbody>
 </table>
    <script language="JavaScript" type="text/javascript">
  <!--
   MakeNegative();
  //-->
    </script>
</body>

答案 1 :(得分:0)

我建议:

var table = document.getElementsByTagName('table')[0],
    cells = table.getElementsByTagName('td'),
    hasNegative = 'hasNegative',
    text = 'textContent' in document ? 'textContent' : 'innerText', num = 0;

for (var i = 0, len = cells.length; i < len; i++) {
    num = parseFloat(cells[i][text]);
    if (Math.abs(num) !== num) {
        cells[i].parentNode.className += ' hasNegative';
    }
}

JS Fiddle demo

确定消极性的相当奇怪的方法是我之前的,也许是天真的检查failing to differentiate between 0 and -0的结果(虽然我不太确定负零是否会通过或失败,你的标准)。