Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 比较tabledata并添加CSS(如果tabledata是_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 比较tabledata并添加CSS(如果tabledata是

Javascript 比较tabledata并添加CSS(如果tabledata是,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个HTML表格,有几个表格行。每行包含2个tabledata元素。 这些td元素由数字填充 我需要的代码,帮助我比较每行的数字,并添加CSS。 例如: <tr> <td>12</td> <td>15</td> </tr> <tr> <td>3</td> <td>1</td> </tr> 12 15 3. 1.

我有一个HTML表格,有几个表格行。每行包含2个tabledata元素。 这些td元素由数字填充

我需要的代码,帮助我比较每行的数字,并添加CSS。 例如:

<tr>
    <td>12</td>
    <td>15</td>
</tr>
<tr>
    <td>3</td>
    <td>1</td>
</tr>

12
15
3.
1.
我们总是在第二个tabledata元素上使用CSS如果第二个td的值小于第一个td元素的值,则必须以红色显示。 另一方面,如果第二个td元素的值大于第一个td元素的值,则必须以绿色显示

这意味着表格内容应如下所示:

<tr>
    <td>12</td>
    <td style='color:green;'>15</td>
</tr>
<tr>
    <td>3</td>
    <td style='color:red;'>1</td>
</tr>

12
15
3.
1.

如何做到这一点?

您可以使用jQuery获取每个
td
元素的内部值,比较这些值并应用给定输出的样式。这假设您总是有两个
td
元素。如果继续,您必须循环行中的每个
td
,并保持运行计数

$("table tr").each(function(){
   var firstTd = $(this).children(":first");
   var secondTd = $(this).children(":last");

   if (secondTd.html() < firstTd.html()) {
       secondTd.css("background-color", "red");
   } else if (secondTd.html() > firstTd.html()) {
       secondTd.css("background-color", "green");
   }
});
$(“表tr”)。每个(函数(){
var firstTd=$(this.children(“:first”);
var secondTd=$(this.children(“:last”);
if(secondTd.html()firstTd.html()){
css(“背景色”、“绿色”);
}
});

您可以尝试使用此功能:

当然,这个解决方案没有使用JQuery

为了以防万一,我也在这里发布了代码:

    <body onload="myFunction()">
        <table>
           <tr>
            <td>12</td>
            <td>15</td>
        </tr>
        <tr>
            <td>3</td>
            <td>1</td>
        </tr>
        </table>
    </body>

    <script>
      function myFunction(){
        var tds = document.getElementsByTagName("td");

        for (var i=0; i<tds.length; i++){
            if (i>=1 && i%2 != 0){
                if (parseInt(tds[i].innerText) > parseInt(tds[i-1].innerText)) {
                    tds[i].style.color = "green";
                } else {
                    tds[i].style.color = "red";
                }
            }
        }
      }
    </script>

12
15
3.
1.
函数myFunction(){
var tds=document.getElementsByTagName(“td”);
对于(变量i=0;i=1&&i%2!=0){
if(parseInt(tds[i].innerText)>parseInt(tds[i-1].innerText)){
tds[i].style.color=“绿色”;
}否则{
tds[i].style.color=“红色”;
}
}
}
}

感谢您的帮助!事实上,我的tablerows每个包含4个td元素。因此,在将CSS代码应用于第三个元素时,我将第二个td元素与第三个td元素进行了比较——我将代码更改为:
$('table tr.SummaryContentTr')。每个(function(){var secondTd=$(this).子元素(':nth child(2);/var thirdTd=$(this).子元素(':nth child(3);(if)(thirdTd.html()secondTd.html()){thirdTd.css('color','green');}});
但是现在所有的tds(3.child)正在设置为绿色。有什么线索吗?你能把它放到JSFIDLE中并将其作为问题的更新发布吗?我刚刚将代码复制到一个新的fiddle项目中。在fiddle中,代码正在工作。所以我认为问题不在于脚本,而是因为tablerows是使用PHP和数据库动态创建的。我必须以某种方式修复它。哟您的代码工作得非常好,竖起大拇指!您可以将其作为函数进行修复,该函数在创建表时在
document.ready
之后调用。