0

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

4

2 回答 2

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>
于 2013-06-11T11:27:58.243 回答
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 小提琴演示

确定否定性的相当奇怪的方法是我之前的结果,也许是幼稚的,检查未能区分0-0(尽管我不太确定负零是否会通过或失败,你的标准)。

于 2013-06-11T11:41:06.173 回答